草庐IT

stl_algobase

全部标签

【速记】C++ STL自定义排序

因为是“速记”,难免会有不完善的地方。这篇笔记咱日后应该还会进行补充。关于sort的比较函数voidsort(RandomItfirst,RandomItlast,Comparecomp);STL的algorithm库中的sort函数,可以接受一个comp函数作为第三个参数,用来指定排序的规则。自定义sort比较函数comp(a,b)函数的返回值是一个bool值,当返回值为true时不改变元素顺序,反之则需要调换元素。可以把其中的a看作序列中前一个位置的元素,b看作后一个位置的元素:如果a的时候comp(a,b)=true,那么a就会被放在b前面,排序呈升序。如果a的时候comp(a,b)=f

【小白必经之路:玩转STL】array容器

此篇随笔将示范array容器的基本操作1.介绍array容器在C++普通数组的基础上,添加了一些函数。在使用上,它比普通数组更安全。 2.头文件及命名空间1#include2usingnamespacestd; 3.举例arraydouble,10>arr;//声明一个装有10个double型元素的数组容器,容器名为arr 4.初始化1//array容器不会像普通数组那样进行默认初始化2arrayint,10>arr01{};//全部初始化为03arrayint,10>arr02{1,2,3};//前三个元素初始化为1,2,3,其他元素初始化为0//上述初始化可以加等号,但是务必注意必须显性初

【小白必经之路:玩转STL】array容器

此篇随笔将示范array容器的基本操作1.介绍array容器在C++普通数组的基础上,添加了一些函数。在使用上,它比普通数组更安全。 2.头文件及命名空间1#include2usingnamespacestd; 3.举例arraydouble,10>arr;//声明一个装有10个double型元素的数组容器,容器名为arr 4.初始化1//array容器不会像普通数组那样进行默认初始化2arrayint,10>arr01{};//全部初始化为03arrayint,10>arr02{1,2,3};//前三个元素初始化为1,2,3,其他元素初始化为0//上述初始化可以加等号,但是务必注意必须显性初

STL 学习

------------恢复内容开始------------P2  1.container需要有allocator帮助分配内存,即每种container都得搭配一个allocator  2.container.begin()表示容器第一个元素的起始地址(指向第一个元素)   container.end()  表示最后一个元素之后下一个元素的起始位置【*(container.end())=垃圾内存】   综上iterator本身类似一个指了针(可能本质就是指针实现的)可以(*,->,++,--)     iterator本身是一个smartpointer【pointerlikeclass】P3 

STL 学习

------------恢复内容开始------------P2  1.container需要有allocator帮助分配内存,即每种container都得搭配一个allocator  2.container.begin()表示容器第一个元素的起始地址(指向第一个元素)   container.end()  表示最后一个元素之后下一个元素的起始位置【*(container.end())=垃圾内存】   综上iterator本身类似一个指了针(可能本质就是指针实现的)可以(*,->,++,--)     iterator本身是一个smartpointer【pointerlikeclass】P3 

C++进阶实例3--基于STL的演讲比赛流程管理系统

C++进阶实例3--基于STL的演讲比赛流程管理系统1.头文件1.1speaker.h1#pragmaonce2#include34usingnamespacestd;56//创建选手类7classSpeaker{8public:9stringm_Name;//姓名10doublem_Score[2];//分数,最多有两轮得分11}; 1.2speechManager.h#pragmaonce//防止头文件重复包含#include#include#include#include"speaker.h"usingnamespacestd;//演讲比赛管理类//提供菜单界面与用户交互//对演讲比赛流

C++进阶实例3--基于STL的演讲比赛流程管理系统

C++进阶实例3--基于STL的演讲比赛流程管理系统1.头文件1.1speaker.h1#pragmaonce2#include34usingnamespacestd;56//创建选手类7classSpeaker{8public:9stringm_Name;//姓名10doublem_Score[2];//分数,最多有两轮得分11}; 1.2speechManager.h#pragmaonce//防止头文件重复包含#include#include#include#include"speaker.h"usingnamespacestd;//演讲比赛管理类//提供菜单界面与用户交互//对演讲比赛流

C++进阶-2-STL初识(容器、算法、迭代器等)

C++进阶-2-STL初识1#include2#includestring>3#include4#include5usingnamespacestd;67//STL初识89//示例110//容器:vector算法11//算法:for_each12//迭代器:vector::iterator1314voidmyPrint(intval){15coutendl;16}1718//vector容器存放内置数据类型19voidtest01(){2021//创建vector容器,数组22vectorint>v;2324//向容器插入数据(尾插)25v.push_back(10);26v.push_bac

C++进阶-2-STL初识(容器、算法、迭代器等)

C++进阶-2-STL初识1#include2#includestring>3#include4#include5usingnamespacestd;67//STL初识89//示例110//容器:vector算法11//算法:for_each12//迭代器:vector::iterator1314voidmyPrint(intval){15coutendl;16}1718//vector容器存放内置数据类型19voidtest01(){2021//创建vector容器,数组22vectorint>v;2324//向容器插入数据(尾插)25v.push_back(10);26v.push_bac

STL

STLSTL是“StandardTemplateLibrary”的缩写,中文译为“标准模板库”。#include#include(推荐)sort()sort函数用于给一个数组进行排序,在algorithm库里。使用方法为sort(v.begin(),v.end(),cmp)),这里的v.begin()是开始的指针位置,v.end()是结束的指针位置(这里的表示是左闭右开,也就是说v.end()并不在排序内容里),cmp可要可不要,如果使用的是自定义类型且没有重载运算符就一定需要。这个数组的类型可以是自定义类型或者STL中的vector,需要注意的是如果采用的是自定义类型则需要重载运算符(也可以