Контейнеры библиотеки 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