博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
容器的相关操作
阅读量:4158 次
发布时间:2019-05-26

本文共 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/

你可能感兴趣的文章
面向对象程序设计2018上机题(2)
查看>>
面向对象程序设计2018上机题(3)
查看>>
面向对象程序设计2018上机题(4)
查看>>
面向对象程序设计2018上机题(5)
查看>>
2018数模国赛B题(3.1)完整实现代码
查看>>
2020.3.14docker
查看>>
6.28 redis详述
查看>>
SpringCloud-v2(21-5-21-20-9-11)
查看>>
2020.11.02 mybatis-分页
查看>>
2020.11.20 前端html
查看>>
2021.1.15 主从复制、持久化备份、过半投票、区块链、p2p
查看>>
2021.3.1 Vue
查看>>
2021-07-04 分布式项目
查看>>
2019.5.28 mockti的分析
查看>>
2019.6.12 Spring_IOC
查看>>
2019.6.14 spring-AOP
查看>>
2019.6.18 spring的xml和注解
查看>>
2019.7.17docker
查看>>
2019.7.19 springboot与数据访问
查看>>
2019.7.24 springboot启动初始化过程源码分析和自定义starter场景启动
查看>>