一. vector & list的使用和区别
STL(标准模板库)是一个C++的软件库,也是C++标准程序库的一部分。vector和list相当于容器,这些容器应该都是STL里面的一个类。而vector封装数组,list封装链表。
vector
如代码:
#include<vector>
vector<int>a(10);//类型为int,数量为10
a[1] = { 1 };//第二个元素赋值为1
cout << a[1] << endl;//输出第二个元素
vector<int>::iterator pr = a.begin(); //迭代器指向第一个元素
pr++;
cout << *pr << endl;
//输出该元素的值
cout << a.size()
<< endl; //数组元素数量
a.front(); //数组第一个元素的引用
a.back(); //数组最后一个元素的引用
vector 类是以容器(Container) 模式为基准设计的,也就是说,基本上它有 begin(),end(),size(),max_size(),empty() 以及 swap() 这几个方法。
· 访问元素的方法
· vec[i] - 访问索引值为 i 的元素引用。 (索引值从零起算,故第一个元素是vec[0]。)
· vec.at(i) - 访问索引值为 i 的元素的引用,以 at() 访问会做数组边界检查,如果访问越界将会抛出一个例外,这是与operator[]的唯一差异。
· vec.front() - 回传 vector 第一个元素的引用。
· vec.back() - 回传 vector 最尾元素的引用。
· 新增或移除元素的方法
· vec.push_back() - 新增元素至 vector 的尾端,必要时会进行内存配置。
· vec.pop_back() - 删除 vector 最尾端的元素。
· vec.insert() - 插入一个或多个元素至 vector 内的任意位置。
· vec.erase() - 删除 vector 中一个或多个元素。
· vec.clear() - 清空所有元素。
· 获取长度/容量
· vec.size() - 获取 vector 目前持有的元素个数。
· vec.empty() - 如果 vector 内部为空,则传回 true 值。