Класс vector
vector – вид последовательности, которая поддерживает итераторы произвольного доступа, он поддерживает операции вставки и удаления в конце с постоянным временем; вставка и удаление в середине занимают линейное время.
Создание:
vector<int> a; // 0 элементов
vector<double> b(10); //10 элементов
vector<double> с(10,0.0); //10 элементов, начальное значение 0
Доступ к элементам:
b[0]=c[4]; // без проверки
b.at(0)=c.at(4); // с проверкой выхода за границы
с.back()=b.front(); // последний и первый элементы (эмуляция стека)
Текущий размер:
c.size()
При необходимости можно изменять размер:
a.resize(100);
b.resize(200,2.0); // всем новым элементам присвоить 2.0
a.clear(); // опять 0 элементов
Добавлять новое значение в конец:
c.push_back(1.5);
Удалять последнее значение:
c.pop_back();
Вставка в середину:
с.insert(c.begin()+pos,1.5);
с.insert(c.begin()+pos,5,1.5); // 5 значений
с.insert(c.begin()+pos,b.begin(),b.end()); // из другого вектора
Удаление из середины:
c.erase(c.begin()+pos);
c.erase(c.begin()+pos,c.end());// все элементы с pos до конца
Для повышения эффективности операций изменения размера можно зарезервировать память:
c.reserve(100);
Работают операции сравнения (в лексикографическом порядке) и присваивание.
Замечание: vector<bool> хранит биты упаковано, поэтому нельзя получить адрес элемента