实践如下:
#include <iostream> #include <vector> #include <typeinfo> using namespace std; int main() { cout<<"Vector 测试"<<endl; vector<int> v1,v2; v1.reserve(10); v2.reserve(10); v1 = vector<int>(8,7); int array[8] = {1,2,3,4,5,6,7,8}; v2 = vector<int>(array, array+8); cout<<"v1容量:"<<v1.capacity()<<endl; cout<<"v1当前各项:"<<endl; for(decltype(v2.size()) i = 0; i < v1.size(); i++){ cout<<" 第"<<i<<"项: "<<v1[i]<<endl; } cout<<"v2容量:"<<v2.capacity()<<endl; cout<<"v2当前各项:"<<endl; for(vector<int>::size_type i = 0; i < v2.size(); i++){ cout<<" 第"<<i<<"项: "<<v2[i]<<endl; } cout<<" typeid(size_t).name() = "<<typeid(size_t).name()<<endl; cout<<" typeid(vector<int>::size_type).name() = "<<typeid(vector<int>::size_type).name()<<endl; cout<<endl<<endl; v1.resize(0); cout<<"v1容量重新初始化为0"<<endl; if(v1.empty()){ cout<<"v1是空的"<<endl; cout<<"v1中元素的个数是: "<<v1.size()<<endl; cout<<"v1容量是: "<<v1.capacity()<<endl; } else{ cout<<"v1容量是: "<<v1.size()<<endl; } v1.resize(10); cout<<"v1容量重新初始化为10"<<endl; cout<<"v1中元素的个数是: "<<v1.size()<<endl; cout<<"v1容量是: "<<v1.capacity()<<endl; cout<<"v1当前各项:"<<endl; for(unsigned int i = 0; i < v1.size(); i++){ cout<<" 第"<<i<<"项: "<<v1[i]<<endl; } cout<<endl<<endl; v1.swap(v2); cout<<"v1与v2进行了swap操作"<<endl; cout<<"v1中元素的个数是: "<<v1.size()<<endl; cout<<"v1容量是: "<<v1.capacity()<<endl; cout<<"v1当前各项:"<<endl; for(unsigned int i = 0; i < v1.size(); i++){ cout<<" 第"<<i<<"项: "<<v1[i]<<endl; } cout<<endl<<endl; v1.push_back(22222); cout<<"v1.push_back(22222)操作"<<endl; cout<<"v1中元素的个数是: "<<v1.size()<<endl; cout<<"v1容量是: "<<v1.capacity()<<endl; cout<<"v1当前各项:"<<endl; for(unsigned int i = 0; i < v1.size(); i++){ cout<<" 第"<<i<<"项: "<<v1[i]<<endl; } cout<<endl<<endl; v1.erase(v1.end()-2); cout<<"v1.push_back(22222)操作"<<endl; cout<<"v1中元素的个数是: "<<v1.size()<<endl; cout<<"v1容量是: "<<v1.capacity()<<endl; cout<<"v1当前各项:"<<endl; for(unsigned int i = 0; i < v1.size(); i++){ cout<<" 第"<<i<<"项: "<<v1[i]<<endl; } cout<<endl<<endl; v1.pop_back(); cout<<"v1.pop_back()操作"<<endl; cout<<"v1中元素的个数是: "<<v1.size()<<endl; cout<<"v1容量是: "<<v1.capacity()<<endl; cout<<"v1当前各项:"<<endl; for(unsigned int i = 0; i < v1.size(); i++){ cout<<" 第"<<i<<"项: "<<v1[i]<<endl; } cout<<endl<<endl; cout << "测试结束" << endl; return 0; }
输出:
Vector 测试 v1容量:8 v1当前各项: 第0项: 7 第1项: 7 第2项: 7 第3项: 7 第4项: 7 第5项: 7 第6项: 7 第7项: 7 v2容量:8 v2当前各项: 第0项: 1 第1项: 2 第2项: 3 第3项: 4 第4项: 5 第5项: 6 第6项: 7 第7项: 8 typeid(size_t).name() = j typeid(vector<int>::size_type).name() = j v1容量重新初始化为0 v1是空的 v1中元素的个数是: 0 v1容量是: 8 v1容量重新初始化为10 v1中元素的个数是: 10 v1容量是: 10 v1当前各项: 第0项: 0 第1项: 0 第2项: 0 第3项: 0 第4项: 0 第5项: 0 第6项: 0 第7项: 0 第8项: 0 第9项: 0 v1与v2进行了swap操作 v1中元素的个数是: 8 v1容量是: 8 v1当前各项: 第0项: 1 第1项: 2 第2项: 3 第3项: 4 第4项: 5 第5项: 6 第6项: 7 第7项: 8 v1.push_back(22222)操作 v1中元素的个数是: 9 v1容量是: 16 v1当前各项: 第0项: 1 第1项: 2 第2项: 3 第3项: 4 第4项: 5 第5项: 6 第6项: 7 第7项: 8 第8项: 22222 v1.push_back(22222)操作 v1中元素的个数是: 8 v1容量是: 16 v1当前各项: 第0项: 1 第1项: 2 第2项: 3 第3项: 4 第4项: 5 第5项: 6 第6项: 7 第7项: 22222 v1.pop_back()操作 v1中元素的个数是: 7 v1容量是: 16 v1当前各项: 第0项: 1 第1项: 2 第2项: 3 第3项: 4 第4项: 5 第5项: 6 第6项: 7 测试结束