vector是一个变长数组,在平时的使用的会常常用到,当我们常常需要在一个数组后频繁插入和删除一个元素时,就可以考虑使用vector,而且vector初始化比较方便,用起来比较舒服;
头文件 : #include < vector >
定义 : vector< typename > vec; //typename可以是任意的数据结构
使用
vector<int> vec(5); //声明一个vector,并为其赋予5的内存空间
vector<int> vec(5,1); //赋予5的内存空间,并把初值都设为1;
vec = vector<int>(5,1); //重新初始化vec的值;
vec.size(); //返回vector的长度,复杂度为O(1);
vec.clear(); //清空vector的内容,并将内存释放;
vec.push_back(x); //在vector后插入x,插入和删除操作使用均摊复杂度来算,复杂度为O(1),使用时方便且复杂度低,相当推荐;
vec.pop_back(); //删除vector最后一个元素,复杂度为O(1);
vec.begin(); //返回vector的起始地址;
vec.end(); //返回vector的终止地址;
sort( vec.begin(),vec.end() ); //对vector排序;
vec.erase( vec.begin() ); //删除vec的首地址的元素,注意传入的一定要是一个地址,复杂度O(n),不建议使用;
lower_bound(vec.begin(),vec.end(),x)-vec.begin(); //配合lower_bound函数的使用;
vector的遍历
for( int i = 0 ; i < vec.size() ; i++ )
{
cout << a[i] << endl;
}
或者:
vector<int>:: iterator it;
for( it = vec.begin() ; it != vec.end() ; it++ )
{
cout << *it << endl;
}