您的位置:首页 > 编程语言 > C语言/C++

STL中vector使用

2015-05-15 16:30 169 查看
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

int main(){
int i;
vector<int>iv(2, 9);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

iv.push_back(1);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

iv.push_back(2);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

iv.push_back(3);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

iv.push_back(4);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

for (int i = 0; i < iv.size(); ++i){
cout << iv[i] << ' ';

}
cout << endl;

iv.push_back(5);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

for (int i = 0; i < iv.size(); ++i){
cout << iv[i] << ' ';
}
cout << endl;

iv.pop_back();
iv.pop_back();
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

iv.pop_back();
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

vector<int>::iterator ivite = find(iv.begin(), iv.end(), 1);
if (ivite != iv.end())
iv.erase(ivite);
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

for (int i = 0; i < iv.size();++i)
{
cout << iv[i] << " ";

}
cout << endl;

ivite = find(iv.begin(), iv.end(), 2);
if (ivite != iv.end())
iv.erase(ivite);

cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

for (int i = 0; i < iv.size(); ++i)
{
cout << iv[i] << " ";

}
cout << endl;

iv.clear();
cout << "Size = " << iv.size() << endl;
cout << "capacity = " << iv.capacity() << endl;

getchar();
getchar();

return 0;

}
当我们使用push_back插入元素的时候,函数首先会检查是否还有备用空间,如果有就直接在备用空间上调用构造函数,并调整迭代器finish,使vector变大,如果没有足够的空间,就重新配置,移动数据,然后释放源空间
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ stl