Контейнеры библиотеки STL. Последовательности типа vector.
#include <vector>
#include <algorithm>
#include <iostream> using namespace std;
//======= Вводим тип для сокращения текста (места)
typedef unsigned int uint;
void main ()
{
//======== Вектор целых
vector<int> v(4);
cout << "\nlnt Vector:\n";
for (uint i=0; i<v.size(); i++)
{
v[i] = rand()%10 + 1;
cout << v[i] << "; ";
}
//======= Сортировка по умолчанию sort (v.begin (), v.end());
cout << "\n\nAfter default sort\n";
for (i=0; i<v.size(); i++) cout << v[i] << "; ";
//======== Удаление элементов
v.erase(v.begin());
cout << "\n\nAfter first element erasure\n";
for (i=0; i<v.size(); i++) cout << v[i] << "; ";
v .erase (v .end ()-2, v.endO);
cout << "\n\nAfter last 2 elements erasure\n";
for (i=0; i<v.size(); i++)
cout << v[i] << "; ";
//======== Изменение размеров
int size = 2; v.resize(size);
cout << "\n\nAfter resize, the new size: " << v.size()
<< endl; for (i=0; i<v.size(); i++)
cout << v[i] << "; ";
v.resize(6,-1);
cout << "\n\nAfter resize, the new size: " << v.size()<< endl;
for (i=0; i<v.size(); i++)
cout << v[i] << "; ";
//======== Статистика.
cout << "\n\nVector's maximum size: " << v.max_size() << "XnVector's capacity: "
<< v.capacity() << endl
//======== Резервирование
v.reserve (100);
cout << "\nAfter reserving storage for 100 elements:\n"
<< "Size: " << v.sizeO << endl:
<< "Maximum size: " << v.max_size() << endl
<< "Capacity: " << v.capacity() << endl;
v.resize(2000);
cout << "\nAfter resizing storage to 2000 elements:\n"
<< "Size: " << v.size() << end1
<< "Maximum size: " << v.max_size() << end1
<< "Capacity: " << v.capacity() << endl; cout << "\n\n";
}
Для того чтобы лучше уяснить смысл и различие методов size, resize, max_size и capacity, мы несколько раз повторяем вызовы этих методов. Если вы читаете книгу вдалеке от компьютера, то вам, возможно, будет интересно узнать, что программа выведет в окно консольного приложения:
Int Vector: 2; 8; 5; 1; After default sort 1; 2; 5; 8; After first element erasure 2; 5; 8; After last 2 elements erasure 2; After resize, the new size: 2, Vector capacity: 4 2; 0; After resize, the new size: 6 2; 0; -1; -1; -1; -1; Vector's maximum size: 1073741823 Vector's capacity: 6 After reserving storage for 100 elements: Vector's size: 6 Vector's maximum size: 1073741823 Vector's capacity: 100 After resizing storage to 2000 elements: Vector's size: 2000 Vector's maximum size: 1073741823 Vector's capacity: 2000
