STL容器的相关操作

————————————————————————————————————————————
c++中关于容器的一些用法:
顺序容器,表示数据可以顺序的访问,不依赖于数据存放的位置,而依赖于数据加入容器的顺序。
主要有:

1.vector
2.string
3.list
4.queue
5.priority_queue
6.stack

关联容器:按照关键字的顺序来保存,访问也是按照关键字进行的。
主要有:

1.map
2.set
3.mutlimap
4.mutliset ——注意这里的数据是顺序排放的
5.unordermap
6.unordermutlimap
7.unorderset
8.unordermutliset
————————————————————————————————————————————

STL之四:list用法详解

https://blog.csdn.net/sunxueping/article/details/51170890

1. list功能

list是双向循环链表每一个元素都知道前面一个元素和后面一个元素.list对象自身提供了两个pointer用来指向第一个和最后一个元素.每个元素都有pointer指向前一个和后一个元素.如果想要插入新元素,只需要操纵对应的pointer即可.因此list在几个方面与array,vector不同:

  • list不支持随机访问,如果你要访问第5个元素,就得顺着串链逐一爬过前4个元素.所以在list中随机访问一个元素是很缓慢的,然而你可以从两端开始航行整个list,所以访问第一个或最后一个元素速度很快.

  • 任何位置上(不只两端)执行元素的插入或删除都非常快,因为无需移动任何其他元素.实际上内部只是进行了一些pointer操作而已.

  • ==插入和删除动作并不会造成其他元素的各个pointer,reference和iterator失效. ==

  • list对于异常的处理方式是:要么操作成功,要么什么都不发生,绝对不会陷入”只成功一半”这种进退维谷的境地.

list所提供的成员函数反映出它与array,vector不同:

  • list提供front(),push_front()和pop_front(),back(),push_back()和pop_back()等操作函数.
  • 由于==不支持随机访问,list既不提供下表操作符,也不提供at(). ==
  • list并未提供容量,空间重新分配等操作函数,因为完全无必要.每个元素都有自己的内存,在这个元素删除前一直有效.
2.list的创建插入与遍历

在这里插入图片描述
在这里插入图片描述

3.list的访问

在这里插入图片描述

4.list的删除

在这里插入图片描述
在这里插入图片描述

5.list的插入

在这里插入图片描述

6.list反转,排序

在这里插入图片描述

7.list的去重

在这里插入图片描述

8.list的注意事项

常用的删除容器中元素的方法是如下(方法1):

list< int> List; 
list< int>::iterator iter; 
for( iter = List.begin(); iter != List.end(); ) 
{
    
if(1) 
{
    
iter = List.erase( iter ); 
} 
else 
{
    
iter++; 
} 
}

注意:函数在返回的时候,是返回当前迭代器的下一个节点。所以当 iter = List.erase( iter ); 执行以后,迭代器自动指向了下一个元素。而对于入参中的iter,所指的地址已经被销毁,所以写的时候,应该注意加上前面的iter =
————————————————————————————————————————————

C++ 学习笔记之 STL 队列

https://www.cnblogs.com/Wade-/p/6498360.html

在算法以及数据结构的实现中,很多地方我们都需要队列(遵循FIFO,先进先出原则)。为了使用队列,我们可以自己用数组来实现队列,但自己写太麻烦不说,并且还很容易出错 好在C++的STL(标准模板库)为我们实现了一个强大的队列,它包含在头文件中

1.队列的构造

在这里插入图片描述

我们可以使用deque(双端队列容器)或者list(链表容器)来作为queue的基础容器(underlying container,即队列是在基础容器的基础上实现的),其中deque是默认使用的,如果没有在参数中特殊指定,那么queue就使用deque作为基础容器

双端队列deque是最容易的使用的队列。下面对这个队列进行说明:
在这里插入图片描述
————————————————————————————————————————————

C++ STL优先队列常用用法

https://blog.csdn.net/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值