vector向量容器不但可以像数组一样对元素进行随机访问,还能在尾部插入元素,是一种简单高效的容器,可以代替数组。
vector具有内存自动管理的功能,对于元素的插入和删除,可以动态的调整所占内存。
对于vector容器的容量定义,可以事先定义一个固定大小,然后可以随时调整其大小;也可以事先不定义,随时使用push_back()方法从尾部扩张元素,也可以使用insert()在某个元素位置前面插入新元素。
vector容器有两个重要的方法,begin()和end()。begin()返回的是首元素位置的迭代器,end()返回的是最后一个元素的下一个元素位置的迭代器。
vector<int> v;(2)指定容器的大小(带一个参数,表示容器的大小)
vector<double> v(10);(3)创建一个具有n个元素的向量容器对象,每个元素具有指定的初值(带两个参数,分别表示容器的大小和每个元素的初值)
vector<int> v(10,0);
#include<vector> using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); return 0; }上面的代码表示:将1,2,3三个元素从尾部添加到v容器中,现在容器的长度为3,三个元素分别是1,2,3
#include<vector> #include<iostream> using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); cout<<v[0]<<endl; v[1] = 10; cout<<v[1]<<endl; cout<<v[2]<<endl; return 0; }程序输出:1 10 3
#include<vector> #include<iostream> using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); vector<int>::iterator it; for(it=v.begin();it<v.end();it++) { cout<<*it<<endl; } return 0; }
#include<vector> #include<iostream> using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); vector<int>::iterator it=v.begin(); v.insert(v.begin(),8); v.insert(v.begin()+2,9); v.insert(v.end(),10); for(it=v.begin();it<v.end();it++) { cout<<*it<<endl; } return 0; }
#include<vector> #include<iostream> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) { v.push_back(i); } cout<<"size:"<<v.size()<<endl; vector<int>::iterator it=v.begin(); v.erase(it+1); //删除v[1] v.erase(it+4,it+7); //删除v[4]~v[5](!!注意此时的数组已经动态调整了) for(it=v.begin();it<v.end();it++) { cout<<*it<<" "; } cout<<"\nempty:"<<v.empty()<<endl; v.clear(); cout<<"empty:"<<v.empty()<<endl; return 0; }
#include<vector> #include<algorithm> #include<iostream> using namespace std; int main() { vector<int> v; for(int i=0;i<10;i++) { v.push_back(i); } vector<int>::iterator it=v.begin(); for(it=v.begin();it<v.end();it++) { cout<<*it<<" "; } cout<<endl; reverse(v.begin(),v.end()); for(it=v.begin();it<v.end();it++) { cout<<*it<<" "; } return 0; }输出结果:
#include<algorithm> #include<vector> #include<iostream> using namespace std; bool Comp(const double &a,const double &b) { return a>b; } int main() { vector<double> v; for(double i=2.0;i>1;i=i-0.1) { v.push_back(i); } sort(v.begin(),v.end()); vector<double>::iterator it=v.begin(); for(it=v.begin();it<v.end();it++) { cout<<*it<<" "; } cout<<endl; sort(v.begin(),v.end(),Comp); for(it=v.begin();it<v.end();it++) { cout<<*it<<" "; } return 0; }
原文:http://blog.csdn.net/qsyzb/article/details/23287463