【7】STL标准库漫谈

从最开始接触标准模板库,到现在还是仅了解其冰山一角,越学越发现标准模板库的异常强大。

【1】STL组成

主要组成:容器、迭代器、算法

(1)容器

1)连续性容器(内存上是连续的)

vector

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.

用法参考文献:

(1)C++ vector用法(详解!!函数,实现):https://blog.csdn.net/msdnwolaile/article/details/52708144

(2)C++ 中vector的使用方法:https://blog.csdn.net/duan19920101/article/details/50617190

(3)C++中vector容器的基本用法总结:https://blog.csdn.net/ws_20100/article/details/50829327

list

list是C++标准模版库(STL,Standard Template Library)中的部分内容。实际上,list容器就是一个双向链表,可以高效地进行插入删除元素。

用法参考文献:

(1)C++ List的用法(整理):https://blog.csdn.net/lskyne/article/details/10418823

(2)C++学习:list容器详解(一):https://blog.csdn.net/mazidao2008/article/details/4802617

(3)C++ STL list的初始化、添加、遍历、插入、删除、查找、排序、释放:https://blog.csdn.net/zhouzhenhe2008/article/details/77428743

deque

 容器deque和vector非常相似,操作函数基本一致。它采用动态数组来管理元素,提供随机存取,可以在头尾两端进行快速安插和删除元素操作。特别要注意,除了头尾两端,在任何地方安插与删除元素,都将导致指向deque元素的任何pointers references iterators 失效。

参考文献

(1)STL之三:deque用法详解:https://blog.csdn.net/longshengguoji/article/details/8519812

(2)【C++ STL学习之三】容器deque深入学习:https://blog.csdn.net/xiajun07061225/article/details/7442816

2)非连续性容器(内存上非连续 分开的)

map

 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。

参考文献

(1)C++中map容器的说明和使用技巧https://www.cnblogs.com/anywei/archive/2011/10/27/2226830.html

(2)C/C++——map的基本操作总结:https://blog.csdn.net/google19890102/article/details/51720305

(3)C++ map用法总结(整理):https://blog.csdn.net/sevenjoin/article/details/81943864

set

set是STL中一种标准关联容器。它底层使用平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高。set,顾名思义是“集合”的意思,在set中元素都是唯一的,而且默认情况下会对元素自动进行升序排列,支持集合的交(set_intersection),差(set_difference) 并(set_union),对称差(set_symmetric_difference) 等一些集合上的操作,如果需要集合中的元素允许重复那么可以使用multiset。

参考文献

(1)C++ STL set容器常用用法:https://blog.csdn.net/cerberux/article/details/51774121

(2)STL中的set容器的一点总结https://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.html

3)容器适配器

栈 :

队列 :

优先级队列:

【2】STL算法

(1)STL algorithm标准库中的各种函数:http://blog.sina.com.cn/s/blog_6d79d83a0100wcdm.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值