![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL模板库
文章平均质量分 65
葡萄玛奇朵朵
学习
展开
-
STL sort采用的是什么排序算法
STL sort采用的是什么排序算法SORT代码算法枢轴的选择SORT代码算法不是固定某一种排序,而是根据状态相应的采用不同的方法。数据量大时采用快排 quick sort,分段递归排序,一旦分段后二点数据量小于某个阈值,为避免快排的递归调用带来的过大的额外开销,就改用insertion sort(插入排序)。如果递归层次过深,还会改用heap sort (堆排序)。枢轴的选择最坏的情况下发生在分割时产生了一个空的区间,这样就完全没有达到分割的效果。STL采用的做法是median-of-thre原创 2021-07-13 21:52:07 · 442 阅读 · 0 评论 -
STL算法和容器比较
STL算法和容器比较STL--算法在vector中使用算法的简单例子STL标准模板库总结序列容器关联容器适配器STL–算法STL为我们提供了很多高效的算法,可以在实际应用中进行运用。算法都在#include<algorithm>中在vector中使用算法的简单例子最大值max_element,最小值min_element,排序sort,查找find,反转reverse#include<iostream>#include<vector>#include<原创 2021-07-13 21:30:03 · 114 阅读 · 0 评论 -
适配器Stack、queue、priority_queue
适配器Stack、queue、priority_queue适配器Stack主要操作代码注意适配器在STL中提供了三个常用容器适配器:stack栈,queue队列,priority_queue优先级队列。适配器都是包装了vector,list,deque中某个顺序容器的包装器,也可以看作由其他容器实现的容器。适配器没有提供迭代器,也不能同时插入或删除多个元素。Stackstack适配器的默认的参数中容器使用deque实现的,可选择的容器有list,vector,deque,实现后进先出的值的排列(原创 2021-07-13 14:11:06 · 87 阅读 · 0 评论 -
map/multimap关联容器
map/multimap关联容器map/multimap关联容器map代码按插入顺序遍历,不排序加上比较谓词自动排序遍历multimap允许关键字重复注意map/multimap关联容器容器map/multimap的底层数据结构为红黑树,map是键值对(key-value),每一个元素都有一个键,是排序的基础,每个键只能出现一次,不允许重复,multimap跟map相同,只不过允许重复键,可用来当作字典(单词+意思)。map代码按插入顺序遍历,不排序#include<iostream>原创 2021-07-12 18:15:44 · 76 阅读 · 0 评论 -
set/multset关联容器
set/multset关联容器set/multiset代码set将set改成multiset注意set/multiset关联容器set/multiset底层数据结构为红黑树(平衡二叉排序树:左子树值小于根节点小于右子树的值)。set内部元素根据其值自动排序,每个元素值只出现一次,不允许重复。multiset跟set相同,只不过它允许重复元素。代码set#include<iostream>#include<set>using namespace std;int mai原创 2021-07-12 16:50:13 · 100 阅读 · 0 评论 -
deque容器
deque容器题deque一个简单实例代码注意非内建型别:结构体/类deque容器deque的底层数据结构是队列,支持头部,尾部,中间操作,支持**[ ]**运算符,与vector类似,但支持push_front(),insert。比vector灵活。一个简单实例代码#include<iostream>#include<deque>#include<algorithm>#include<functional>using namespace s原创 2021-07-11 15:47:16 · 69 阅读 · 0 评论 -
List容器
List容器list一个简单实例注意存放非内建型别:结构体/类 同vectorlist容器list的底层数据结构为链表,非连续内存,不支持[]操作符,支持任意位置(前后等)操作(push_back/front/insert)。一个简单实例#include<iostream>#include<list>#include<algorithm>#include<functional>using namespace std;typedef list&原创 2021-07-11 15:13:47 · 64 阅读 · 0 评论 -
vector容器
vector容器vector一个简单的例子注意排序,查找,删除排序sort(v.begin(),v.end(),比较函数)注意代码定义比较函数后:从小到大从大到小插入it=find(v.begin(),v.end(),要找的数)注意代码删除it=erase(it)注意代码Vector对非内建型别的操作:结构体和对象vector容器vector的底层数据结构是数组,连续内存,支持[ ]操作符(支持随机存取)。只支持尾部操作(一端插入删除),所以不能作为队列(queue 一端插入,另一端删除)的底层数据结构原创 2021-07-10 22:47:56 · 109 阅读 · 1 评论 -
STL模板库概述
STL模板库概述是用来干什么的?包含序列容器---线性表,链表关联容器适配器两种迭代器(类似于指针)常用算法是用来干什么的?STL:standard template library标准模板库。标准:跨平台,只要符合c++语法标准,就既能在windows上运行,又能在Linux上运行。用来存放和管理程序中需要用到的**任何类型(泛型)**的数据的数据结构。不用自己来实现链表,队列,栈等结构,以及排序(冒泡,快排。。),查找。(数据结构是学习知其所以然)。包含序列容器—线性表,链表vect原创 2021-07-09 21:10:49 · 68 阅读 · 0 评论