【C++】:STL容器总结以及算法(algorithm)介绍
最新推荐文章于 2024-10-20 18:44:04 发布
![](http://img.huajiangbk.com/upload/news/2024/1219/photos/middle/20241219124559_1446o_bf2cjvlg.jpg)
yuanCruise 于 2018-06-14 12:09:33 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文深入探讨了C++中的STL容器,包括它们的共同能力,如值语意、拷贝操作及迭代器访问。此外,文章还详细介绍了如何选择合适的容器,如vector、deque和list,并讨论了它们的适用场景。同时,文章阐述了STL算法,如查找、排序、拷贝和替换等,并举例说明了它们的使用方法,强调了算法在提高代码效率上的重要性。
摘要由CSDN通过智能技术生成
容器的共通能力
所有容器提供的都是值(value)语意,而非引用(reference)语意。容器执行插入元素的操作时,内部实施拷贝动作。所以STL容器内存储的元素必须能够被拷贝(必须提供拷贝构造函数)。 除了queue与stack外,每个容器都提供可返回迭代器的函数,运用返回的迭代器就可以访问元素。 通常STL不会丢出异常。要求使用者确保传入正确的参数。 每个容器都提供了一个默认构造函数跟一个默认拷贝构造函数 如已有容器vecIntA。
vector< int > vecIntB(vecIntA); //调用拷贝构造函数,复制vecIntA到vecIntB中。
与大小相关的操作方法(c代表容器): c.size(); //返回容器中元素的个数 c.empty(); //判断容器是否为空12 比较操作(c1,c2代表容器):
c1 == c2 判断c1是否等于c2 c1 != c2 判断c1是否不等于c2 c1 = c2 把c2的所有元素指派给c1123
容器的选择时机
![这里写图片描述](http://img.huajiangbk.com/upload/news/2024/1219/photos/middle/20241219124600_1446o_ho2499is.jpg)
Vector的使用场景:比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。 deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。 vector与deque的比较:
一:vector.at()比deque.at()效率高,比如vector.at(0)是固定的,deque的开始位置却是不固定的。
二:如果有大量释放操作的话,vector花的时间更少,这跟二者的内部实现有关。
三:deque支持头部的快速插入与快速移除,这是deque的优点。
list的使用场景:比如公交车乘客的存储,随时可能有乘客下车,支持频繁的不确实位置元素的移除插入。 set的使用场景 相关知识
计算机经典书籍电子书合集(适合计算机学生学习以及程序员笔试、面试)
机器学习算法
聚类算法和分类算法总结
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
c++第二次实验
《C语言点滴》第1章 程序猿&&程序媛
基于随机森林算法B2B客户分级系统设计.doc
限流算法总结:计数器、滑动窗口、漏桶算法、令牌桶算法
C++做的玫瑰花
【报名通知】首届CCF算法能力大赛正式启动
网址: 【C++】:STL容器总结以及算法(algorithm)介绍 https://m.huajiangbk.com/newsview1183960.html