尾部开口,因此在其尾部进行数据的输入输出操作效率最高。 尾部输入成员函数push_back(),尾部删除成员函数pop_back() 常用构造函数见如下程序:
int _tmain(int argc, _TCHAR* argv[]) { vector<int> v1;//构造一个空的容器 for (int i = 0; i < 20; i++) { v1.push_back(i); //vector如何实现内存的动态增长,会预先创建一块内存区,当用完后再重新申请 cout << "v1.size():" << v1.size() << " v1.capacity()" << v1.capacity()<<endl;//size()元素的个数,capacity() vector的总长度,包括没被初始化的元素 } vector<int> v2(10);//构造一个长度为10的容器 vector<int> v3(10,2);//构造一个长度为10的容器,并用2初始化它 vector<int> v4(v1);//构造一个容器v4,并用v1初始化它 vector<int> v5(v1.begin()+1, v1.begin()+11);//构造一个容器v5并用v1的部分元素初始化它 return 0; }数据的访问
int _tmain(int argc, _TCHAR* argv[]) { vector<int> v1; for (int i = 0; i < 5; i++) { v1.push_back(i); } cout << "使用下标和at()读取数据" << endl; for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " " << v1.at(i)<<endl; } cout << "使用下标和at()来写入数据" << endl; v1[0] = 10; v1.at(1) = 11; for (int i = 0; i < v1.size(); i++) { cout << v1[i] << " " << v1.at(i) << endl; } //使用迭代器来插入数据 vector<int>::iterator iter; iter = v1.begin(); v1.insert(iter + 1, 0); cout << "使用迭代器来遍历输出数据" << endl; for (iter = v1.begin(); iter!= v1.end(); iter++) { cout << *iter << endl; } return 0; }其它的常用函数: clear() 删除容器中所有元素 erase(pos) 删除pos指定位置的元素 erase(begin,end) 删除begin到end-1间的所有元素 insert(pos,elem) 在pos处插入elem,并返回新元素的位置 insert(pos,n,elem) 在pos处插入n个elem insert(pos,begin,end) 把begin到end-1的所有元素拷贝到pos处 resize(n) 将元素个数改为n resize(n,elem) 将元素个数改为n,如果size增加,把增加的都初始化为elem
c++11为vertor增加的新内容: 使用{}来初始化和赋值 简单地使用for来遍历元素并进行简单操作
int _tmain(int argc, _TCHAR* argv[]) { vector<int> v1= {1,2,3,4,5}; for (auto &i : v1){ i = i*i; } for (auto &i : v1){ cout << i << endl; } return 0; }