c++笔记
jianglx3
跨考汪一以贯之!
展开
-
LeetCode707设计链表
C++ - 结构体构造函数使用总结 - _starsky - 博客园 (cnblogs.com)结构体的构造函数创建及使用原创 2022-01-25 22:51:49 · 867 阅读 · 1 评论 -
NULL与nullptr
(3条消息) 一文搞懂 NULL 和 nullptr 的区别【C/C++面试必备】_Linux猿-CSDN博客_null和nullptr有什么区别null是可以进行类型转换的,而nullptr仅可进入指针类型 (?)原创 2022-01-25 16:28:58 · 691 阅读 · 0 评论 -
演讲比赛流程管理系统
头文件*2#include<iostream>using namespace std;#include<vector>#include<map>#include<algorithm>#include"speaker.h"#include<deque>#include<numeric>#include<fstream>class SpeechManager {public: //构造函数 Spee原创 2021-10-17 00:37:32 · 177 阅读 · 0 评论 -
c++笔记 常用算术生成算法*2
accumulatefill//算术生成算法属于小型算法,使用时包含头文件 #include<numeric>//accumulate //计算容器元素总和//fill //向容器中添加元素#include<iostream>using namespace std;#include<vector>//#include<algorithm>#include<numeric>void test01() { vector原创 2021-10-16 00:27:26 · 96 阅读 · 0 评论 -
c++笔记 常用拷贝和替换算法*4
copyreplacereplace_ifswap//copy //容器内指定范围的元素拷贝到另一容器中//replace //将容器内指定范围的旧元素改为新元素//swap //互换两个容器的元素//replace_if //互换两个容器的元素#include<iostream>#include<algorithm>using namespace std;#include<vector>void myPrint(int val原创 2021-10-16 00:26:22 · 72 阅读 · 0 评论 -
c++笔记 常用集合算法*3
set_differenceset_intersectionset_union//求两个集合的差集//注意:v1与v2的差集 和 v2与v1的差集数值不同//求两个元素并集#include<iostream>using namespace std;#include<vector>#include<algorithm>void myPrint(int val) { cout << val << " ";}void t原创 2021-10-16 00:21:22 · 97 阅读 · 0 评论 -
c++笔记 常用排序算法*2
random_shufflesort//洗牌:指定范围内元素随机调整次序//random_shuffle(iterator beg,iterator end);//如果需要每次运行次序不同,需要加入随机数种子#include<iostream>using namespace std;#include<vector>#include<algorithm>#include<ctime>void myPrint(int val) { co原创 2021-10-16 00:19:36 · 108 阅读 · 0 评论 -
c++笔记 常用查找算法*7
countcount_iffind_ifmergereverseadjacent_findbinary_search//查找相邻重复元素//adjacent_find(iterator beg, iterator end);//返回第一个的迭代器#include<iostream>using namespace std;#include<functional>#include<vector>#include<algorit原创 2021-10-16 00:11:13 · 90 阅读 · 0 评论 -
c++笔记 常用遍历算法*3
//算法主要头文件 <algorithm> <functional> <numeric>//for_each //遍历容器//transform //搬运容器到另一个容器中 注意:resize定一下新容器大小//常用查找*6 见图片 p245#include<iostream>using namespace std;#include<functional>#include<vector>#incl.原创 2021-10-15 23:57:03 · 110 阅读 · 0 评论 -
c++笔记 内建函数对象 算术_逻辑_关系
//内建函数对象:STL内部建造了一些函数对象//分类:算术(+-*/) 关系(><=) 逻辑(&|!)//用法://1.与一般函数完全相同//2.需要头文件 #include<functional>//算术仿函数原型*6 见图片 p240//其中,negate为一元运算 取反,其余为二元//关系仿函数*6 见图片 p241//逻辑仿函数*3 见图片 p242#include<iostream>using namespace s.原创 2021-10-15 23:55:52 · 86 阅读 · 0 评论 -
c++笔记 谓词 二元谓词
#include<vector>#include<iostream>#include<algorithm>using namespace std;class MyCompare {public: bool operator()(int val1, int val2) { return val1 > val2; }};void test01() { vector<int>v; v.push_back(10); v.push_b.原创 2021-10-15 23:55:09 · 105 阅读 · 0 评论 -
c++笔记 谓词 一元谓词
//概念://返回bool类型的仿函数称为谓词//如果operator()接受一个参数,那么叫一元谓词//如果operator()接受两个参数,那么叫二元谓词#include<vector>#include<iostream>using namespace std;class GreaterFive {public: bool operator()(int val) { return val > 5; }};void test01() { vec.原创 2021-10-15 23:54:36 · 123 阅读 · 0 评论 -
c++笔记 函数对象 函数对象基本使用
//概念:重载了函数调用操作符的类,其对象常称为函数对象//函数对象:对函数的操作符进行重载的类//函数对象在重载函数操作符()时,行为类似函数调用,也叫仿函数//函数对象(仿函数)是一个类,不是一个函数//函数对象使用://1.函数对象在使用时,可以像普通函数一样,可以有参数,可以有返回值//2.函数对象超出普通函数的概念,函数对象可以有自己的状态 (本质为类,可以有自己的属性)//3.函数对象可以作为参数传递//感悟:为什么引入仿函数?//答:比如前节的set容器等,排序自定义需.原创 2021-10-15 23:53:56 · 171 阅读 · 0 评论 -
c++笔记 STL 案例_员工分组
#include<iostream>using namespace std;#include<vector>#include<map>#include<ctime>#define CEHUA 0#define MEISHU 1#define YANFA 2class Worker {public: string m_name; int m_salary;};void createWorker(vector<Worker>.原创 2021-10-15 23:53:17 · 112 阅读 · 0 评论 -
c++笔记 STL map容器_排序
//默认排序规则为:按照key值,从小到大,掌握如何改变排序规则//利用仿函数改变排序规则#include<iostream>#include<map>using namespace std;class MyCompare {public: bool operator()(int v1, int v2)const { //降序 return v1 > v2; }};void test01() { map<int, int,MyCompar..原创 2021-10-14 21:58:49 · 106 阅读 · 0 评论 -
c++笔记 STL map容器_查找和统计
//函数原型://find(key); //查找key是否存在,若存在,则返回改值的迭代器,不存在返回set.end();//count(key); //统计key的元素个数//同样结果只可能为0或者1,因为map容器不允许重复#include<iostream>#include<map>using namespace std;void test01() { map<int, int>m; m.insert(pair<int, int&g.原创 2021-10-14 21:58:19 · 251 阅读 · 0 评论 -
c++笔记 STL map容器_插入和删除
//insert(elem);//clear();//erase(pos); //删除该位置上数据//erase(beg,end); //删除区间内数据//erase(key); //删除容器内全部值为key的数据#include<iostream>#include<map>using namespace std;void printMap(const map<int, int>& m) { for (map<int, int.原创 2021-10-14 21:57:44 · 175 阅读 · 0 评论 -
c++笔记 STL set容器插入和删除
//insert(elem);//clear();//erase(pos); //删除该位置上数据//erase(beg,end); //删除区间内数据//erase(elem); //删除容器内全部值为elem的数据#include<iostream>#include<set>using namespace std;void printSet(const set<int>& st) { for (set<int>::c.原创 2021-10-14 21:57:07 · 132 阅读 · 0 评论 -
c++笔记 STL map容器_大小和交换
//函数原型://size(); //返回容器中元素数目//empty(); //判断容器是否为空//swap(st); //交换两个集合容器#include<iostream>#include<map>using namespace std;void printMap(const map<int, int>& m) { for (map<int, int>::const_iterator it = m.begin(); i.原创 2021-10-14 21:56:33 · 178 阅读 · 0 评论 -
c++笔记 STL set容器大小和交换
//函数原型://size(); //返回容器中元素数目//empty(); //判断容器是否为空//swap(st); //交换两个集合容器#include<iostream>#include<set>using namespace std;void printSet(const set<int>& st) { for (set<int>::const_iterator it = st.begin(); it != st..原创 2021-10-14 21:56:01 · 145 阅读 · 0 评论 -
c++笔记 STL map容器赋值和构造
//map容器中所有元素都是pair//pair的第一个元素为key(赋值),起到索引作用,第二个元素为value(实值)//所有元素都会根据元素的键值自动排序//本质:map/multimap属于关联式容器,底层结构使用二叉树实现//优点://可以根据key值快速找到value值//map与multimap区别://map不允许容器中有重复key//multimap允许容器中有重复key值元素#include<iostream>#include<map>us.原创 2021-10-14 21:54:51 · 394 阅读 · 0 评论 -
c++笔记 STL set容器_自定义数据类型指定排序规则
#include<iostream>using namespace std;#include<set>class person {public: person(string name,int age) { this->m_name = name; this->m_age = age; } string m_name; int m_age;};class comparePerson {public: bool operator()(cons.原创 2021-10-14 21:54:02 · 180 阅读 · 0 评论 -
c++笔记 STL set容器_内置类型指定排序规则
//set容器默认排序为从小到大,掌握如何改变排序规则//利用仿函数,可以改变排序规则#include<iostream>#include<set>using namespace std;//仿函数:用类调用函数//仿函数设计:class MyCompare {public: //下一行末尾加上const /*bool operator()(int v1, int v2){ return v1 > v2; }*/ bool operator()(i.原创 2021-10-14 21:53:06 · 263 阅读 · 1 评论 -
c++笔记 STL set容器_pair对组的创建
//两种创建方式://pair<type,type> p (value1,value2);//pair<type,type> p = make_pair(value1,value2);//利用对组可以返回两个数据#include<iostream>using namespace std;//不需要pair头文件void test01() { //第一种方式 pair<string, int>p("Tom", 20); cout <&.原创 2021-10-14 21:50:53 · 146 阅读 · 0 评论 -
c++笔记 STL set容器_set和multiset区别
//set不可以插入重复数据,而multiset可以//set插入数据的同时会返回插入结果,表示插入是否成功//multiset不会检测数据,因此可以插入重复数据#include<iostream>using namespace std;#include<set>void test01() { set<int>s; /*s.insert(10); s.insert(10);*/ //思考:为什么set不可以插入重复数据? //答:转到定义,pair.原创 2021-10-13 23:48:06 · 103 阅读 · 0 评论 -
c++笔记 STL set容器_查找和统计
//函数原型://find(key); //查找key是否存在,若存在,则返回改值的迭代器,不存在返回set.end();//count(key); //统计key的元素个数//注意:cout函数对于set函数,仅可能为0或者1,而multiset可以>1#include<iostream>using namespace std;#include<set>void test01() { set<int>s1; s1.insert(10);.原创 2021-10-13 23:46:59 · 206 阅读 · 0 评论 -
c++笔记 STL set容器_构造和赋值
//set/multiset容器:所以元素都会在插入时自动排序//本质:set/multiset属于关联式容器,底层结构是用二叉树实现//set与multiset区别:set不允许容器中有重复的元素 multiset允许//构造://set<T> st; //默认构造函数//set(const set &st); //拷贝构造函数//赋值://set& operator=(const set &st); //重载等号操作符#include&.原创 2021-10-13 23:46:09 · 330 阅读 · 0 评论 -
c++笔记 STL list容器_排序案例
//注意:本题要求排序时,年龄相同按身高降序//这时一个以上条件排序为高级排序//高级排序即:在排序规则上再进行一次逻辑规则制定#include<iostream> using namespace std;#include<list>class person {public: person(string name, int age, int height) { m_name = name; m_height = height; m_age = age;.原创 2021-10-13 23:44:26 · 78 阅读 · 0 评论 -
c++笔记 STL list容器_反转和排序
//将容器中的元素反转,以及将容器中的数据进行排序//函数原型://reverse(); //反转链表//sort(); //链表排序#include<iostream>#include<list>using namespace std;void printList(const list<int>& d) { for (list<int>::const_iterator it = d.begin(); it != d.end.原创 2021-10-13 23:43:54 · 228 阅读 · 0 评论 -
c++笔记 STL list容器_数据存取
//函数原型://front(); //返回第一个元素//back(); //返回最后一个元素//为什么只有两个?//原因:list为链表,无法通过下标访问,即无法使用at()函数和[]#include<iostream>#include<list>using namespace std;void printList(const list<int>& d) { for (list<int>::const_iterator it .原创 2021-10-13 23:43:13 · 164 阅读 · 0 评论 -
c++笔记 STL list容器_插入和删除
//函数原型://push_back(ele); //尾部插入元素ele//push_front(ele); //头部插入元素ele//pop_back(ele); //删除最后一个元素//pop_front(ele); //删除最后一个元素//insert(const_iterator pos,ele); //在pos位置插入一个elem元素的拷贝,返回新的数据//insert(const_iterator pos,int count,ele); //.原创 2021-10-13 23:41:47 · 180 阅读 · 0 评论 -
c++笔记 STL list容器_大小操作
//empty(); //判断容器是否为空//size(); //返回容器中元素的个数//resize(int num); //重新指定容器长度为num.若容器变长,则默认值填充新位置 //如果容器变短,则末尾超出容器长度的元素被删除//resize(int num,elem); //重新指定容器的长度为num,若容器变长,则以elem值填充新位置 //如果容器变短,则末.原创 2021-10-13 23:41:02 · 194 阅读 · 0 评论 -
c++笔记 STL list容器_赋值和交换
//assign(beg,end); //将[beg,end]区间中的数据拷贝赋值给本身//assign(n,elem); //将n个elem拷贝赋值给本身//list& operator=(const list &list); //重载等号操作符//swap(lst); //将lst与本身的元素互换#include<iostream>#include<list>using namespace std;void printLis.原创 2021-10-13 23:39:46 · 270 阅读 · 0 评论 -
c++笔记 STL list容器基本概念与构造函数
//将数据链式存取//链表:是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的//链表的实现:链表由一系列结点组成//结点组成:1.存储数据元素的数据域 2.存储下一个结点地址的指针域//STL中的链表是一个双向循环链表//优点:可以对任意位置进行快速插入或删除元素//缺点:遍历速度比数组慢,占用空间较大//由于链表的储存方式并不是连续的内存空间,因此链表list的迭代器只支持前移和后移,属于双向迭代器//list的优点://1.采用动态存储分配,不会.原创 2021-10-13 23:39:02 · 95 阅读 · 0 评论 -
c++笔记 STL queue容器_基本概念和常用接口
//queue容器:先进先出(First In First Out,FIFO)的数据结构,它有两个出口//队列容器允许从一端新增元素,从另一端移除元素//队列中只有队头和队尾才可以被外界使用,还是不可以遍历//入队push 出队pop//构造函数://queue<T> que; //queue采用模板类实现,queue对象的默认构造形式//queue(const queue &que); //拷贝构造函数//赋值操作://queue& oper.原创 2021-10-11 09:35:03 · 140 阅读 · 0 评论 -
c++笔记 STL stack容器_基本概念与常用接口
//stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口//栈中只有顶端的元素才可以被外界使用,因为栈不允许有遍历行为//原因:由于FILO原则,只有顶端元素才可以被外界访问,如果访问目前的顶端的上一个存入元素,那么目前的顶端将被弹出//此时,栈储存的数据发生变化//栈可以判断元素是否为空? 可以 empty//栈可以返回元素个数? 可以 size,每进入一个数进行一次++//入栈 push//出栈 pop//构造函数: //.原创 2021-10-11 09:02:49 · 144 阅读 · 0 评论 -
c++笔记 STL 案例1_评委打分
//vector容器嵌套deque容器//因为需要对数据头部(两端)操作,故采用queue容器表示选手所打分数#include<iostream>using namespace std;#include<vector>#include<deque>#include<algorithm>#include<ctime>//视频思路:将评委的十个打分与平均分分开考虑,平均分设置为person类,而评委打分为deque容器储存//最后让.原创 2021-10-10 23:05:11 · 245 阅读 · 0 评论 -
c++笔记 STL deque容器_排序操作
#include<deque>#include<algorithm>#include<iostream>using namespace std;//利用算法对deque容器进行排序//算法:sort(iterator be,iterator end) //对beg和end间元素进行排序void printDeque(const deque<int>& d) { for (deque<int>::const_iterato.原创 2021-10-10 18:51:11 · 301 阅读 · 0 评论 -
c++笔记 deque容器_数据存取
//at(int idx); //返回索引idx所指的数据//operator[]; //返回索引idx所指的数据//front(); //返回容器中第一个数据元素//back(); //返回容器中最后一个数据元素#include<iostream>using namespace std;#include<deque>void test01() { deque<int>d; d.push_back(10); d.push_back.原创 2021-10-10 18:17:05 · 155 阅读 · 0 评论 -
c++笔记 STL deque容器_插入和删除
//函数原型://push_back(ele); //尾部插入元素ele//push_front(ele); //头部插入元素ele//pop_back(ele); //删除最后一个元素//pop_front(ele); //删除最后一个元素//insert(const_iterator pos,ele); //在pos位置插入一个elem元素的拷贝,返回新的数据//insert(const_iterator pos,int count,ele); //.原创 2021-10-10 00:43:01 · 105 阅读 · 0 评论