本文共 994 字,大约阅读时间需要 3 分钟。
本文转自:
1、size_type:其大小足以保证存储内存中对象的大小。
2、iterator:迭代器
3、const_iterator:常迭代器。常对象调用begin或end返回的是常迭代器。
4、 difference_type:同一容器对象中不同元素之间的距离
1、在顺序容器中添加元素
c.push_back(t)
c.push_front(t)
c.insert(p,t)//在p迭代器位置插入t
c.insert(p,n,t)//在p迭代器位置插入n个t
c.insert(p,b,e)//在p迭代器位置插入b迭代器和e迭代器之间的元素
vector只能往后插,list和deque可以往前插
2、容器元素都是副本,不会修改传进去的变量的值
3、添加元素可能会使迭代器失效,因此要避免存储end操作返回的迭代器
1、关系运算符>、<、==、!=
2、所有的容器类型都可以使用
3、比较的容器必须必须具有相同的容器类型
4、容器的比较是基于容器内元素的比较(而不是容器的长度)
5、容器内元素必须有相应的关系运算符
1、容器大小的操作
c.size();
c.max_size();//最大能装多少个对象
c.empty();
c.resize(n);
c.resize(n,t);//容器调整到大小为n,新增的数据用t来填上
注意:resize操作可能会使迭代器失效
访问元素
1、c.back();
2、c.front();
3、c[n];
4、c.at(n);//这种更好,可以异常 处理catch(out_of_range)
注意:c[n]和c.at[n]只适合vector和deque容器,因为list不能随机访问
删除元素
1、c.erase(p);
2、c.erase(b,e);//删除从b到e的所有元素,包括b但不包括e
3、c.clear();//删除所有元素
4、c.pop_back()
5、c.pop_front()
注意:c.pop_front只适用于list和deque,因为vector不能从前面取出
一、赋值与交换
1、c1 = c2;
2、c1.swap(c2);
3、c1.assign(b,e);//b和e是两个迭代器
4、c1.assign(n,t);//n个t
二、使用swap:类型必须相同
三、使用assign:类型兼容即可
转载地址:http://gtuxi.baihongyu.com/