vector是顺序容器,容器内的元素占据连续的内存单元,容器大小随着元素的增加而动态增大,但是不会因为删除元素而减小存储空间。
sort(v[i].begin(), v[i].end());
vector::iterator iter = unique(v[i].begin(), v[i].end());
v[i].erase(iter, v[i].end());
声明一个容器的同时要指定类型:
vector<<b>
int> container;
这里的int可以替换成任意一个系统定义的类型或者自定义的类或结构。
容器(vector, set其他的没用过)一般支持两种遍历方式:类似数组的索引访问和迭代器访问。
迭代器的功能和用法很像指针,但是声明的时候略有不同:
vector::iterator iter;
值得注意的是容器的存储空间是动态增长的,所以一个迭代器有可能在操作(插入元素)的过程中就失效了。为了防止访问到无效的地址,迭代器一般都是即时询问的。
比如说判断是否找完了vector中所有元素了,要和container.end()做比较,最好不要一开始保存一个尾指针来比较。
在vector新增元素有两种操作:push_back()和insert()
push_back()顾名思义即在最后插入新元素。
与之对应的删除操作时pop_back()
鉴于vector是顺序容器,insert()的效率很低一般不用?
以防万一还是援引下用法吧。
先挖坑。。慢慢填。。。