学习进度(2)
作者:互联网
在学习了JavaScript的开发后,为了准备算法竞赛我开时重新复习C++的知识,C++的知识是我在大一下半学期学习的,但也只是浅浅的学习了C++的基本语法。
本学习我针对竞赛常用的一些STL函数进行了学习
如:
STL容器:
STL中的容器有队列容器和关联容器,容器适配器(congtainer adapters:stack,queue,priority queue),位集(bit_set),串包(string_package)等等。
(1)序列式容器(Sequence containers),每个元素都有固定位置--取决于插入时机和地点,和元素值无关,vector、deque、list;
Vector:将元素置于一个动态数组中加以管理,可以随机存取元素(用索引直接存取),数组尾部添加或移除元素非常快速。但是在中部或头部安插元素比较费时;
Deque:是“double-ended queue”的缩写,可以随机存取元素(用索引直接存取),数组头部和尾部添加或移除元素都非常快速。但是在中部或头部安插元素比较费时;
List:双向链表,不提供随机存取(按顺序走到需存取的元素,O(n)),在任何位置上执行插入或删除动作都非常迅速,内部只需调整一下指针;
(2)关联式容器(Associated containers),元素位置取决于特定的排序准则,和插入顺序无关,set、multiset、map、multimap等。
Set/Multiset:内部的元素依据其值自动排序,Set内的相同数值的元素只能出现一次,Multisets内可包含多个数值相同的元素,内部由二叉树实现,便于查找;
Map/Multimap:Map的元素是成对的键值/实值,内部的元素依据其值自动排序,Map内的相同数值的元素只能出现一次,Multimaps内可包含多个数值相同的元素,内部由二叉树实现,便于查找;
容器类自动申请和释放内存,无需new和delete操作。
STL的<algorithm>,<numeric>和<functional>这三个算法头文件
这里面我觉得常用的有排序函数sort(),二分查找函数binary_search(),min(),max()函数等。
这些函数的合理应用会大大方便你写竞赛的代码。
标签:容器,随机存取,STL,元素,queue,学习,进度,排序 来源: https://www.cnblogs.com/wlqyyds/p/16373644.html