STL
YanWenCheng_
日常总结
展开
-
STL
一,容器1.Sequence containers(序列容器)vector,array,deque,list2.Container adaptors(容器适配器)stack,queue,priority_queue;3.Associative containers(关联容器)set,multiset,map,multimap4.Unordered associative contin...原创 2020-03-13 08:07:57 · 145 阅读 · 0 评论 -
STL--演讲比赛
需求分析(1)产生选手 (ABCDEFGHIGKLMNOPQRSTUVWX) 编号 姓名,得分(2)第一轮 抽签 比赛 查看结果(3)第二轮 抽签 比赛 查看结果(4)第三轮 抽签 比赛 查看结果#include<iostream>#include<string>#include<vector>#includ...原创 2020-01-27 22:43:36 · 614 阅读 · 0 评论 -
STL---------常用的算数生成算法
常用算数生成算法(1)需要头文件(2)accumulate(begin,end,0):计算容器数据和,第三个参数为起始累加值;(3)fill(begin,end,1000):填充1000,开始定义时resize(10,0)用0填充;代码分析#include<iostream>#include<list>#include<iterator>#inc...原创 2020-01-26 16:56:09 · 333 阅读 · 0 评论 -
STL---常用的拷贝和替换算法
常用的拷贝和替换算法(1)copy(begin,end,targetbegin):一个容易拷贝到另一个容器中;目标容器需要预留空间;copy(v.begin(),v1.end().ostream_iterator(cout," ")):将vector遍历打印到屏幕,相当与for_each;需要头文件iterator;(2)replace(begin,end,val , updataval):...原创 2020-01-26 16:14:19 · 280 阅读 · 0 评论 -
STL---常用的排序算法
常用排序算法(1)merge(begin1,end1,begin2,end2,targetbegin):将两个有序的容器,合并成一个有序的容器,容器事先自己分配好内存;(2)sort(begin, end):小到大;sort(begin,end,greater()):大到小;(3)random_shuffle(begin,end):洗牌函数,打乱顺序;list没有这个功能;(4)reve...原创 2020-01-26 15:19:52 · 263 阅读 · 0 评论 -
STL--常用查找方法
常用查找方法头文件(1)find(v.begin(), v.end().4):查找值或者对象,查找对象时需要在类中有=运算符重载;(2)find_if:查找关于仿函数的数据,也可以自定义数据和适配器搭配使用;(3)adjacent_find(begin,end);查找第一个相同数据的迭代器;(4)binary_search(begin,end,val):二分查找;返回值bool;(5)...原创 2020-01-25 19:49:37 · 507 阅读 · 0 评论 -
STL--适配器
. 适配器(1)函数适配器:bind2nd绑定,继承binary_function(参1,参2 ,返回值),函数加const常函数;(2)取反适配器:not1绑定,继承unary_function(参数1,返回值),函数加const;(3)普通函数指针适配器:ptr_fun将函数指针适配为函数对象,在2nd参数绑定;(4)成员函数适配器:mem_fun_ref(), 作用域;代码分析#...原创 2020-01-25 19:47:19 · 209 阅读 · 0 评论 -
STL适配器的使用
.find_if(v.begin() , v.end() , mygreate ): //第三个参数为对象(匿名对象也可以)适配器(1)函数适配器:bind2nd绑定,继承binary_function(参1,参2 ,返回值),函数加const常函数;(2)取反适配器:not1绑定,继承unary_function(参数1,返回值),函数加const;(3)普通函数指针适配器:ptr_f...原创 2020-01-25 15:31:33 · 1559 阅读 · 2 评论 -
deque容器的基本使用
deque容器 使用deque。即双端队列;特点为front和back都可以插入,也都可以删除;只需要看懂数据结构中的双端队列,使用就根据特点即可;代码#include<iostream>#include<deque>using namespace std;#include<algorithm>//iterator 普通迭代器 reversed_...原创 2020-01-23 18:05:14 · 298 阅读 · 0 评论 -
set 和map容器基本使用
1.set 容器(1)关联式容器(2)插入数据自动排序,按照key,没有value;(3)没有pushback插入,插入用insert;insert的返回值pair<iterator , bool>其中bool为插入是否成功,因为不允许重复插入;(4)没有pop,删除用erase,可以传值或迭代器;(5)find(key):查找key是否存在,存在返回迭代器,不存在返回s.e...原创 2020-01-23 17:59:30 · 355 阅读 · 0 评论 -
函数对象(仿函数)
函数对象,仿函数(1)是一个类,类中重载()运算符; eg: MyPrint p; p(111) ;(2)内部可以记录状态,例如调用次数;(3)作为类型,可以与普通函数和模板等作为参数使用;代码分析#include<iostream>using namespace std;class MyPrint{public: MyPrint() { this...原创 2020-01-23 17:54:38 · 193 阅读 · 0 评论 -
STL案例 --员工分组
#include<iostream>#include<string>#include<vector>#include<map>using namespace std;enum{RENLI,YANFA,GONGXIN};class Person{public : Person( string name , int wage) { ...原创 2020-01-23 17:07:58 · 302 阅读 · 0 评论 -
STL写评委打分
#include<iostream>#include<deque>#include<vector>#include<string>#include<ctime>using namespace std;class Person{public: Person(string name, int score) { thi...原创 2020-01-21 16:05:48 · 218 阅读 · 0 评论 -
利用STL写排序--两部搞定
sort算法注意:(1)参数为迭代器类型(2)默认从小到大排序(3)若要从大到小排序,利用三个参数的重载函数,告诉sort一个排序案例;(4)因为是迭代器类型,所以数据必须存放在容器中。bool myCompare(int val1,int val2){ return val1 > val2; //给sort一个为真的案例,他就按这个顺序调整}void test02(){...原创 2020-01-20 16:07:57 · 281 阅读 · 0 评论 -
resize和reserver的区别
1、resize(n)调整容器的长度大小,使其能容纳n个元素。如果n小于容器的当前的size,则删除多出来的元素。否则,添加采用值初始化的元素。2、 resize(n,t)多一个参数t,将所有新添加的元素初始化为t。而reserver()的用法只有一种reserve(n)预分配n个元素的存储空间。了解这两个函数的区别,首先要搞清楚容器的capacity(容量)与size(长度)的...原创 2020-01-19 21:40:29 · 1099 阅读 · 0 评论 -
vector的简单使用
每个容器都有自己的迭代器,学习容器要配合他的迭代器一起使用#include<iostream>#include<vector>using namespace std;//vector简单使用void test01(){ //vector声明容器 vector<int> v; //插入数据 v.push_back(10); v.push_...原创 2020-01-18 22:14:52 · 159 阅读 · 0 评论 -
STL学习方向--六大组件
1.STL(standard template library)广义上分为三大组件: 容器 ,算法, 迭代器 细分为六大组件: (1)容器 (2)算法 (3)迭代器 (4)仿函数 (5)适配器 (6)空间配置器STL优点:(1)高可重用性 :模板类,模板函数(2)高性能 :例如map可以从十几万数据快速查找数据,使用红黑树机制(3)高可移植(4)跨平台...原创 2020-01-18 22:12:16 · 224 阅读 · 0 评论