![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
STL
Smilingmm
这个作者很懒,什么都没留下…
展开
-
STL学习2常用容器2.8map/multimap
1、关联式容器,key和value每个元素都是对组2、所有元素根据元素的键值自动排序,所有元素都是pair同时拥有实值和键值,其中第一个元素为键值,第二个为实值,可以允许 两个元素的实值相同,不允许键值相同,可以通过迭代器改变元素的实值不能改变键值3、map与list拥有相同的某些性质,在进行元素的新增insert和删除erase操作时,操作之前的所有迭代器在操作完成之后依然有效(被删除元...原创 2019-02-28 19:39:21 · 175 阅读 · 0 评论 -
STL综合案例演讲比赛
1)某市举行一场演讲比赛(speech_contest),共有24个人参加,按参加顺序设置参赛号。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。2)比赛方式:分组比赛 每组6个人 随机分组 第一轮分为4个小组,根据参赛号顺序依次划分,比如100-105为一组,106-111为第二组,依次类推,每组6个人,抽签(draw)决定演讲顺序。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一...转载 2019-03-05 11:22:08 · 2845 阅读 · 0 评论 -
STL学习3常用算法3.8常用集合算法
1、set_intersection 求两个集合的交集2、set_union 求两个容器的并集3、set_difference 求两个集合的差集4、两集合必须是有序序列5、返回结果最后一个元素的迭代器位置6、头文件#include<algorithm>7、测试程序#include"pch.h"#include<iostream>#incl...原创 2019-03-05 11:01:37 · 291 阅读 · 0 评论 -
STL学习3常用算法3.7常用算数生成算法
1、头文件 #include<numeric>2、accumulate 2.1 计算容器元素累计总和 2.2 第三个参数是起始累加的值3、fill 3.1 填充算法4、测试程序 #include"pch.h"#include<iostream>#include<vector>#include&...原创 2019-03-05 10:22:24 · 168 阅读 · 0 评论 -
STL学习3常用算法3.6常用拷贝替换算法
1、copy复制 1.1将容器中指定范围的元素拷贝到另一容器中 1.2 目标容器要有容量2、replace按值替换 2.1 将区间内指定的旧元素替换为新元素3、replace_if 按条件替换 3.1 将区间中符合条件的旧元素替换为新元素4、swap 交换 4.1 交换两个容器中的所有元素5#include"pch.h"...原创 2019-03-05 10:03:41 · 142 阅读 · 0 评论 -
STL学习3常用算法3.5常用排序算法
1、merge 合并算法 1.1 需提供两个待合并容器与一个目标容器 1.2 待合并容器必须有序 且排序规则相同 1.3 目标容器需提前指定容量 1.4 合并后容器依然有序 与待合并容器排序规则相同2、sort 1.1 只提供排序区间默认从小到大排序 1.2 若需其他排序规则需自定义回调函数或函数对象 1.3 ...原创 2019-03-05 09:23:16 · 179 阅读 · 0 评论 -
STL学习3常用算法3.4常用查找算法
1 、find 1.1 按元素查找 2.2 提供查找迭代器区间与查找元素 返回迭代器2、find_if 2.1 按条件查找 2.2 查找区间(迭代器) 查找条件(一元谓词,若为二元需绑定) 2.3 返回迭代器 2.4 若为自定义数据类型 需要重载判断条件3、count 3.1 按元素统计...原创 2019-03-05 08:43:44 · 177 阅读 · 0 评论 -
STL学习1初识
STL基本概念STL从广义上分为:容器(containter)、算法(algorithm)、迭代器(iterator) 六大组件:容器(各种数据结构)、算法(各种算法sort、search…)、迭代器(容器与算法之间的桥梁,所有容器有自己的专属迭代器、原生指针也是一种迭代器)、仿函数(functors行为类似与函数,是一种重载了operator()的class或class template)...转载 2019-02-25 20:22:29 · 177 阅读 · 0 评论 -
STL学习2常用容器2.2vector
vector容器 单端开口 2.1 与数组类似,但是动态分配内存;2.2 支持随机存取,使用随机访问迭代器,普通指针也满足;一个vector的容量永远大于或等于其大小,其为动态增加大小,满载时将申请一个比原来内存更大的空间再将原始数据拷贝新空间并释放原空间(一旦引起该空间的重新配置指向原vector的迭代器将全部失效) 2.3 v.resize(int num,elem)重新...转载 2019-02-25 20:23:44 · 139 阅读 · 0 评论 -
STL学习2常用容器2.3deque
5.1 双向开口连续线性空间,可以在头尾两端分别做元素的插入(push_pront)与删除(pop5.2 deque与vector最大的差异:1、deque允许使用常数项时间(以固定的步骤)对头端进行元素的插入与删除操作2、deque没有容器的概念,内部用中控器控制连续分段空间,可以随时增加一段新的空间进行拼接(vector需要进行一系列的扩容、复制、释放操作)5.3 作业 ...原创 2019-02-27 10:00:43 · 177 阅读 · 0 评论 -
STL学习2常用容器2.4stack容器
1 stack容器1.1符合先进后出的数据结构,只有栈顶元素可以被取用,不允许遍历,也没有迭代器1.2 构造,赋值,大小size,是否为空empty,栈顶元素top(返回栈顶元素),出栈pop(返回值为bool类型表示出栈操作是否成功不能将其赋值给其他元素)1.3 程序接口测试#include "pch.h"#include <iostream>#include...原创 2019-02-27 18:37:30 · 178 阅读 · 0 评论 -
STL学习2常用容器2.1string
string容器注意:1)、索引都是从0开始; 2)、find查找字符串第一次出现的位置,rfind(right 从右开始查找)查找最后一次出现的位置 3)、当指定替换区间时,即使待替换的字符串长度大于该区间也将执行且不会影响区间外的内容,原始string对象 长度将增加。...原创 2019-02-27 18:47:08 · 125 阅读 · 0 评论 -
STL学习2常用容器2.5queue容器
1.符合先进先出的数据结构,允许从一端新增元素,另一端移除元素,除队头和尾之外其他元素不能被访问,不允许遍历,没有迭 代器2.大小size3.是否为空empty4.队头元素 front5.队尾元素back6.入队push7.出队pop8.接口测试程序#include "pch.h"#include <iostream>#include<q...原创 2019-02-27 19:08:34 · 127 阅读 · 0 评论 -
STL学习2常用容器2.6list
1.循环双向链表(首尾相连,next指针指向后一个结点,prev指针指向前一个结点),存储单元非连续、非顺序,对于元素的插入与移除永远是常数时间2.不能以普通指针作为迭代器(vector可以),其迭代器为Bidirectional iterator(双向迭代器)3.删除 remove(elem)删除容器中所有与elem匹配的元素4.反转 reverse,质变反转5.排序 so...原创 2019-02-27 20:54:46 · 139 阅读 · 0 评论 -
STL学习2常用容器2.7set/multiset
一、set容器1、关联式容器,内部插入数据时候自动排序,不允许插入重复的key值2、set/multiset容器不可以通过迭代器修改里面的元素,因为默认有了排序规则,其底层实现是红黑树,红黑树是平衡二叉树的一种3、树的简单知识 3.1二叉树:任何节点最多只允许有两个子节点,分别为左子节点和右子节 3.2平衡二叉树:左子树与右子树的高度的绝对值不能大于1,且这棵树的子...原创 2019-02-28 09:48:58 · 163 阅读 · 0 评论 -
STL学习3常用算法3.1函数对象
一、函数对象1、函数对象就是重载了()的类,又叫函数符、仿函数,调用类似于普通函数,可以作为函数参数传递2、2、测试程序#include"pch.h"#include<iostream>using namespace std;//1、函数对象是重载了()的类,调用方式类似普通函数 仿函数class MyPrint{public: int m_cou...转载 2019-03-01 10:34:51 · 140 阅读 · 0 评论 -
STL学习2常用容器2.8总结
转载 2019-03-01 10:04:29 · 137 阅读 · 0 评论 -
STL学习3常用算法3.3常用遍历算法
1、for_each 主要功能:遍历 1.1 有返回值 1.2 可以绑定参数 进行输出(利用适配器)2、transformer搬运,目标容器要提前分配容量3、测试程序#include"pch.h"#include<iostream>#include<vector>#include<algorithm>#include&...原创 2019-03-02 18:32:23 · 202 阅读 · 0 评论