容器的相关操作

来源:互联网 发布:mac口红代购价 编辑:程序博客网 时间:2024/05/16 11:32


本文转自:http://blog.csdn.net/sinat_24229853/article/details/43836037

http://blog.csdn.net/sinat_24229853/article/details/43836261

http://blog.csdn.net/sinat_24229853/article/details/43836351

http://blog.csdn.net/sinat_24229853/article/details/43836409

http://blog.csdn.net/sinat_24229853/article/details/43836453

http://blog.csdn.net/sinat_24229853/article/details/43836507

http://blog.csdn.net/sinat_24229853/article/details/43836537

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:类型兼容即可

0 0
原创粉丝点击