![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
努力做一个code杠精
我就是个小垃圾
展开
-
C++ STL 中大根堆,小根堆的应用。
1》优先队列:在C++中优先队列默认的是大根堆,如果用小根堆则加入greater.priority_queue<int, vector<int>, less<int>>s;//less表示按照递减(从大到小)的顺序插入元素priority_queue<int, vector<int>, greater<int>>s;//greater表示按照递增(从小到大)的顺序插入元素不写第三个参数或者写成less都是大根堆。greater是原创 2020-05-12 23:05:34 · 23266 阅读 · 8 评论 -
【STL】常用的遍历查找算法find、binary_search、adjacent_find、find_if、count、count_if、transform、for_each
常用的遍历查找算法find、binary_search、adjacent_find、find_if、count、count_if、transform、for_each一、遍历算法二、查找算法三、案例使用举例:#include<iostream>#include<vector>#include<algorithm>using namespace ...原创 2019-11-07 18:39:55 · 425 阅读 · 0 评论 -
【STL】函数对象适配器bin1st、bin2st、not1、not2、ptr_fun、mem_fun 、mem_fun_ref(简略仅当自己的笔记使用)
函数对象适配器看完以下程序,并编译运行,相信能很快懂得怎么使用函数对象适配器#include<iostream>#include<vector>#include<algorithm>#include<functional>using namespace std;/*仿函数适配器: bin1st bin2st 绑定适配器仿函数适...原创 2019-11-07 18:33:52 · 628 阅读 · 0 评论 -
【STL】STL各常用容器特点、STL各容器使用时机、STL容器共性机制、deque、stack、queue
对STL中deque、stack、queue、list、Set、Map各容器的特点对比,使用时机,共性机制的总结,以方便于日后个容器的使用。自我感觉本博客STL分类中的各个博客能让你了解并会使用SLT中的几乎一切基础知识。原创 2019-11-07 17:45:03 · 380 阅读 · 0 评论 -
【STL案例】(对组的知识点(pair))map/multimap/pair/vector...案例实操。(对员工进行分类)
对组#include<iostream>using namespace std;void test01() { //构造方法 pair<int, int>pair1(10, 20); cout << pair1.first << " " << pair1.second << endl;//10 20 p...原创 2019-11-06 20:24:58 · 195 阅读 · 0 评论 -
【STL】map/multimap容器的构造、赋值、插入、删除。。。。等操作(易懂易学)及案例
map/multimap容器:Map相对于set区别:map具有键值和实值,所有元素根据键值自动排序。Pair的第一元素被称为键值,第二元素被称为实值。Map也是以红黑树为底层实现机制。我们通过map迭代器可以修改map的键值吗?答案是否定的,键值关系到容器内元素的排列规则,任意改变键值会破坏容器的排列规则,但是可以改变实值。**map和multimap区别在于,map不允许相同的key...原创 2019-11-06 20:18:03 · 1501 阅读 · 1 评论 -
【STL】set/multiset容器的赋值、插入、删除、查找。。。及案例。(相对比较易懂易学)
set/multiset容器set/multiset的特性是:所有元素会根据元素的值自动进行排序。Set是以RB-tree(红黑树,平衡二叉树的一种)为底层机制,其查找效率非常好,set容器中不允许重复元素,multiset允许重复元素set/multiset的各种操作案例(易懂易学)该案例配合上面的操作,结合以下代码。#include<iostream>#incl...原创 2019-11-06 20:14:09 · 1174 阅读 · 0 评论 -
【STL】List容器(链表)的特性、插入、删除、赋值、数据存储、反转+实例
list容器链表一、链表特性(1) 链表是由一系列的结点组成,结点包含两个域,一个数据域,一个指针域。(2) 链表内存是非连续的,因此添加或删除元素,时间复杂度都是常数项,不需要移动元素,比数组添加删除效率高。(3) 链表只有在需要的时候,才分配内存。(4) 链表,只要拿到第一个结点,相当于拿到整个链表。(5) 链表需要额外的空间保存结点的关系:前驱、后继关系。二、链表和数组区别:...原创 2019-11-01 16:46:14 · 725 阅读 · 0 评论 -
【STL】queue容器
queue容器1-queue特性(1)队列容器 先进先出 一端插入,另外一端删除。(2)不提供迭代器—不能进行遍历(3)不能随机访问2-queue容器操作3-实例#include#includeusing namespace std;void test01(){ queue<int>q;//创建队列 q.push(10);//队尾插入元素 q.push(2...原创 2019-11-01 10:54:39 · 100 阅读 · 0 评论 -
【STL】stack容器
stack容器1-特性总结(1)先进后出(2)栈不提供迭代器,因此不能遍历,不支持随机存取,只能通过top从栈顶获取和删除元素(3)只能通过栈顶一个一个给里面加元素,通过栈顶一个一个删除元素实例#include<iostream>#include<stack>using namespace std;void test01() { //1-初始化 ...原创 2019-11-01 10:28:20 · 67 阅读 · 0 评论 -
【STL】deque容器的构造、赋值、大小、双端插入、双端删除、数据存储操作
deque容器deque容器的构造、赋值、大小、双端插入、双端删除、数据存储操作#include<iostream>#include<deque>using namespace std;void printDeque(deque<int>d) { for (deque<int>::iterator it = d.begin(); it ...原创 2019-11-01 09:33:54 · 163 阅读 · 0 评论 -
【STL实例】deque容器、vector容器 评委打分案例
评委打分案例创建五个选手(姓名、得分),10个评委对五个选手进行打分得分规则:去除最高分,去除最低分,取出平均分按得分对25名选手进行排名#include<iostream>#include<deque>#include<string>#include<vector>#include<algorithm>using na...原创 2019-10-31 22:20:47 · 202 阅读 · 0 评论 -
【STL】vector容器的赋值,读取、插入、删除、空间压缩和特性详解+实例
一 特性说明vector是一个动态数组,当空间不足的时候插入新元素,vector会重新申请一块更大内存空间,将旧空间数据拷贝到新空间,然后释放旧空间。Vector是单口容器,所以在尾端插入和删除效率较高,在指定位置插入,势必会引起元素移动,效率较低。1 Vector 拷贝构造2常用赋值操作3-vector的大小操作4-数据存储操作5-插入与删除操作实例:```cpp#i...原创 2019-10-31 16:40:34 · 3440 阅读 · 0 评论 -
【STL】string容器的初始化、拼接、赋值、查找、替换、比较、子串、插入和删除
一、string特性string是STL的字符串类型,通常用来表示字符串。而在使用string之前,字符串通常是用char表示的,string与char都可以用来表示字符串。说到string的特性,就不得不和char类型的字符串对比:1、char是一个指针,string是一个类string封装了char*,管理这个字符串,是一个char型的容器。2、string封装了很多实用的成员方法...原创 2019-10-31 09:53:39 · 660 阅读 · 2 评论 -
【STL】C++文本文件读写、二进制文件操作、对象序列化 ifstream ofstream
```cpp#include<iostream>#include<fstream>//文件读写using namespace std;//文本文件读写void test01() { const char* fileName = "H:\\C++初级练习\\数据结构\\source.txt"; const char* targetName = "H:\\C+...原创 2019-10-29 21:01:09 · 835 阅读 · 0 评论 -
【STL】C++标准输入输出流
输入和输出相对于程序而说的。键盘输入数据到程序:标准输入 input;程序数据输出到显示器:标准输出 output。标准输入+标准输出=标准I/O;文件的输入和输出叫文件I/O;cout: 全局流对象,输出数据到显示器(输出缓冲区);cin: 从缓冲区读取数据(输入缓冲区)cerr: 标准错误 输出数据到显示器;clog: 标准日志 输出数据到显示器;cerr没有缓冲区,clo...原创 2019-10-29 19:55:54 · 239 阅读 · 0 评论 -
【STL】1-模板函数和普通函数区别;2-模板函数调用规则;3-C++编译过程;4-函数模板,模板函数。
1-模板函数和普通函数区别:普通函数可以自动进行类型转换函数模板必须严格类型匹配。2-模板函数调用规则:(1) 函数模板可以想普通函数那样可以被重载。(2) C++编译器优先考虑普通函数。(3) 如果函数模板可以产生一个更好的匹配,那么选择模板。(4) 可以通过空模板实参列表的语法限定编译器只能通过模板匹配。3-C++编译过程:编译 过程:Index.cpp >> ...原创 2019-10-29 16:18:18 · 138 阅读 · 0 评论 -
【STL】异常机制的好处与语法及案例
C++中的异常存在为什么好?(1) 函数的返回值可以忽略,但异常不可忽略。如果程序出现异常,但是没有被捕获,程序就会终止,这多少会促使程序员开发出来的程序更加健壮一点。而如果使用C语言中的error宏或者函数的返回值,调用者都有可能忘记检查,从而没有对错误进行处理,结果曹成程序莫名其妙的中值或出现错误的结果。(2) 整形返回值没有任何语义信息。而异常却包含语义信息,有时你从类名就能够体现出来。...原创 2019-10-28 16:16:02 · 131 阅读 · 0 评论 -
【STL】C++类型转换static_cast、dynamic_cast、const_cast、reinterpret_cast
C++和C语言中类型转换是有区别的,在C语言中一般只管类型转换不用对其进行安全检查。但是在C++中我们不仅要对其进行类型转换,系统还会对其进行安全检查,因此我们在C++中常用到以下四个类型转换的关键字:1–static_cast 一般类型转换2–dynamic_cast 通常在基类和派生类之间转换时使用3–const_cast 主要针对const的转换4–reinterpret_cast ...原创 2019-10-28 12:09:35 · 248 阅读 · 0 评论