白马c++
文章平均质量分 57
C++基础
叫我六胖子
奋战九个月,加油,(记录笔记)
展开
-
59,综合案例-演讲比赛流程管理系统
在speechManager.h中提供开始比赛的成员函数void createSpeaker();在speechManager.h中提供开始比赛的成员函数void initSpeech();在speechManager.h中提供开始比赛的成员函数void starSpeech();在speechManager.h中添加保存记录的成员函数void loadRecord();在speechManager.h中添加保存记录的成员函数void showRecord();原创 2023-07-28 11:34:21 · 116 阅读 · 0 评论 -
58,#include<algorithm>集合算法set_difference
求两个集合的差集set_difference(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest);原创 2023-07-25 08:40:39 · 180 阅读 · 0 评论 -
57,#include<algorithm>集合算法set_union
求两个集合的并集set_union(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest);原创 2023-07-25 08:40:16 · 74 阅读 · 0 评论 -
56,集合算法set_intersection
求两个集合的交集set_intersection(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest);原创 2023-07-25 08:40:02 · 79 阅读 · 0 评论 -
55,#include<algorithm>算数生成算法fill
向容器中填充元素fill(iterator beg,iterator end,value);原创 2023-07-25 08:39:38 · 58 阅读 · 0 评论 -
54,#include<numeric>算数生成算法accumulate
计算容器元素累加总和accumulate(iterator beg,iterator end,value);原创 2023-07-25 08:39:10 · 71 阅读 · 0 评论 -
53,拷贝和替换算法swap
互换两个容器的元素swap(container c1,container c2);原创 2023-07-25 08:38:52 · 53 阅读 · 0 评论 -
52,拷贝和替换算法replace_if
按条件替换区间内的满足条件的元素replace_if(iterator beg,iterator end,_Pred,newvalue);原创 2023-07-25 08:38:31 · 67 阅读 · 0 评论 -
51,拷贝和替换算法replace
将容器内指定范围的指定旧元素改为新元素replace(iterator beg,iterator end,oldvalue,newvalue);原创 2023-07-25 08:38:05 · 45 阅读 · 0 评论 -
50,拷贝和替换算法copy
容器内指定范围的元素拷贝到另一容器中copy(iterator beg,iterator end,iterator dest);原创 2023-07-24 19:18:28 · 48 阅读 · 0 评论 -
49,排序算法reverse
反转指定范围内的元素reverse(iterator beg,iterator end);原创 2023-07-24 16:53:07 · 59 阅读 · 0 评论 -
48,排序算法merge
两个容器元素(有序序列)合并,并储存到另一容器中merge(iterator beg1,iterator end1,iterator beg2,iterator end2,iterator dest);原创 2023-07-24 16:42:54 · 631 阅读 · 0 评论 -
47,排序算法random_shuffle
指定范围内的元素随机调整次序random_shuffle(iterator beg,iterator end);原创 2023-07-24 16:10:17 · 64 阅读 · 0 评论 -
46,排序算法sort
按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置sort(iterator beg,iterator end,_Pred);原创 2023-07-24 15:49:44 · 610 阅读 · 0 评论 -
45,查找算法count_if
按条件统计元素出现次数count_if(iterator beg,iterator end,_Pred);原创 2023-07-24 15:13:02 · 45 阅读 · 0 评论 -
44,查找算法count
统计元素出现次数count(iterator beg,iterator end,value);原创 2023-07-24 14:52:07 · 50 阅读 · 0 评论 -
43,查找算法binary_search
查找指定的元素,查到 返回true 否则falsebool binary_search(iterator beg,iterator end,value);原创 2023-07-24 14:24:42 · 39 阅读 · 0 评论 -
42,查找算法adjacent_find
查找相邻重复元素adjacent_find(iterator beg,iterator end);原创 2023-07-24 10:38:38 · 49 阅读 · 0 评论 -
41,查找算法find_if
按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置find_if(iterator beg,iterator end,_Pred);原创 2023-07-24 09:46:05 · 68 阅读 · 0 评论 -
40,查找算法find
查找指定元素,找到返回指定元素的迭代器,找不到返回结束地带去end()find(iterator beg,iterator end,value);原创 2023-07-23 21:25:56 · 209 阅读 · 0 评论 -
39,遍历算法transform
搬运容器到另一个容器中transform(iterator beg1,iterator end1,iterator beg2,_func);原创 2023-07-23 20:13:05 · 145 阅读 · 0 评论 -
38,遍历算法for_each
实现遍历容器for_each(iterator beg,iterator end,func)原创 2023-07-23 18:37:44 · 143 阅读 · 0 评论 -
37,内建函数对象
template<class T>T plus<T> //加法仿函数。template<class T>T minus<T> //减法仿函数。template<class T>T multiplies<T> //乘法仿函数。template<class T>T divides<T> //除法仿函数。template<class T>T negate<T> //取反仿函数。其中negate是一元运算,其他都是二元运算。原创 2023-07-23 14:53:16 · 44 阅读 · 0 评论 -
36,谓词
如果operator()接受一个参数,那么叫做一元谓词。如果operator()接受两个参数,那么叫做二元谓词。返回bool类型的仿函数称为谓词。原创 2023-07-23 10:44:29 · 46 阅读 · 0 评论 -
35,函数对象
函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值。函数对象使用重载的()时,行为类似函数调用,也叫仿函数。函数对象超出普通函数的概念,函数对象可以有自己的状态。本质:函数对象(仿函数)是一个类,不是一个函数。重载函数调用操作符的类,其对象常称为函数对象。函数对象可以作为参数传递。35.2函数对象的使用。35.1函数对象概念。原创 2023-07-23 09:46:31 · 35 阅读 · 0 评论 -
34,STL案例-员工分类
部门为:策划 员工名字:员工G 员工工资:4965。部门为:策划 员工名字:员工B 员工工资:6629。部门为:研发 员工名字:员工I 员工工资:5753。部门为:研发 员工名字:员工H 员工工资:3320。部门为:研发 员工名字:员工F 员工工资:5527。部门为:研发 员工名字:员工E 员工工资:6902。部门为:研发 员工名字:员工D 员工工资:4599。部门为:研发 员工名字:员工C 员工工资:4038。部门为:研发 员工名字:员工A 员工工资:3515。姓名:员工B工资:12425。原创 2023-07-21 15:53:25 · 53 阅读 · 0 评论 -
33,map/multimap容器
/查找key是否存在,若存在,返回该键的元素迭代器;//删除区间[beg,end)的所有元素,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)map& operator=(const map &mp);//删除容器中值为key的元素。map不允许容器中有重复的key值元素(value值可以有重复)//统计key的元素个数。//返回容器元素的数目。原创 2023-07-21 11:30:27 · 132 阅读 · 0 评论 -
32,set/multiset容器
比如find的时候,找到了给你返回pair(里面是key和值),找不到的时候给你返回什么呢?比如一个只有一个元素的容器,那begin()和end()不是指向相同了,这样无法写出for循环了吧?函数被用作STL容器的比较函数时,我们希望该函数不会修改对象的状态,因为这可能会导致容器的行为不可预测。//查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();//删除区间[beg,end)的所有元素,返回下一个元素的迭代器。//删除pos迭代器所指的元素,返回下一个元素的迭代器。原创 2023-07-20 13:43:04 · 63 阅读 · 0 评论 -
31,list容器
list是双向循环链表,sort制定规则,判断是否位空empty,返回元素个数size,重新指定个数resize尾插push_back,尾删pop_back,头插push_front,头删pop_front,插入insert,删除erase,移除remove,清空clear,返回第一个元素front,返回最后一个元素back,反转reverse,排序sort(成员函数)原创 2023-07-19 15:25:58 · 346 阅读 · 0 评论 -
30,queue容器
/queue采用模板类实现,queue对象的默认构造形式。//从对头移除第一个元素。//返回最后一个元素。//判断堆栈是否为空。概念:queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。队列容器允许从一端新增元素,从另一端移除元素,队列queue符合先进先出。队列中进数据称为--入队(push)队列中出数据称为--出队(pop)原创 2023-07-19 09:54:58 · 267 阅读 · 0 评论 -
29,stack容器
/stack采用模板类实现,stack对象的默认构造形式。//从栈顶移除第一个元素。//判断堆栈是否为空。概念:stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。栈可以返回元素个数(size)(每放入一个元素的时候记录数量)栈可以判断容器为空与否(empty)栈中进入数据称为--入栈(push)栈中弹出数据称为--出栈(pop)原创 2023-07-19 09:04:57 · 233 阅读 · 0 评论 -
28,STL案例-评委打分
有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。遍历vector容器,取出每一个选手,执行for循环,可以把10个评分打分存到deque容器中。sort算法对deque容器中分数排序,去除最高和最低分。创建五名选手,放到vector中。deque容器遍历一遍,累加总分。原创 2023-07-18 13:43:57 · 123 阅读 · 0 评论 -
27,deque容器
/将[beg,end)区间中的数据拷贝赋值给本身。//构造函数将[beg,end)区间中的元素拷贝给本身。//在pos位置插入一个elem元素的拷贝,返回新数据的位置。//删除[beg,end)区间的数据,返回下一个数据的位置。sort(iterator beg,iterator end) //对beg和end区间内元素进行排序。//在pos位置插入[beg,end)区间的数据,无返回值。//删除pos位置的数据,返回下一个数据的位置。//判断容器是否为空。原创 2023-07-18 11:24:20 · 56 阅读 · 0 评论 -
26,vector容器
/讲v(begin(),end())区间中的元素拷贝给本身。//如果容器变短,则末尾超出容器长度的元素被删除。//如果容器变短,则末尾超出容器长度的元素被删除。//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。//容器预留len个元素长度,预留位置不初始化,元素不可访问。原创 2023-07-17 15:43:57 · 62 阅读 · 0 评论 -
25,string容器
/从pos位置查找s的前n个字符第一次位置。原创 2023-07-11 20:49:57 · 45 阅读 · 0 评论 -
24,STL初识
STL中最常用的容器为Vector,可以理解为数组,下面学习如何向这个容器中插入数据,并遍历这个容器。非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等。STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。算法:各种常用的算法、如sort、find、copy、for_each等。常用的数据结构:数组、链表、树、栈、队列、集合、映射表等。原创 2023-07-08 14:56:41 · 52 阅读 · 0 评论 -
23,类模板
实际上,类模板中的成员函数的定义通常也包含在模板声明中,但只有在实例化时才会生成对应的函数代码。这是由编译器的实现方式决定的,编译器在遇到模板实例化之前不会为所有可能的类型都生成成员函数的定义。通过延迟生成,允许每个实例化的类模板根据具体需要生成自己的成员函数,从而灵活地满足特定情况下的需求。当我们定义一个类模板时,它并不会立即创建成员函数,而是在模板被实例化(即模板参数确定)时才生成相应的成员函数。类模板作用:建立一个通用的类,类种的成员数据类型可以不用具体制定,用一个虚拟的类型来代表。原创 2023-07-07 14:51:12 · 55 阅读 · 0 评论 -
22,模板
函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定;解决方法:1,运算符重载 2,利用具体化Person的版本实现代码,具体化优先调用。总结:既然提供了函数模板,最好就不要提供普通函数,否则容易出现二义性。模板的通用性不是万能的,有些特定数据类型,需要用具体化方式做特殊实现。函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换。如果函数模板和普通函数都可以实现,优先调用普通函数。总结:利用具体化的模板,可以解决自定义类型的通用化。c++提供两种模板机制:函数模板和类模板。原创 2023-07-05 16:32:37 · 36 阅读 · 0 评论 -
20,文件操作
二进制文件:文件以文本的二进制形式存储在计算机中,用户一般不能之间读懂他们。len是读写的字节数。例如:用二进制方式写文件ios::binary | ios::out。总结:文件输出流对象,可以通过write函数,以二进制方式写数据。总结:文件输入流对象可以通过read函数,以二进制方式读数据。文本文件:文件以文本的ASCII码形式存储在计算机中。二进制方式写文件主要利用流对象调用成员函数write。二进制方式读文件主要利用流对象调用成员函数read。读文件与写文件步骤相似,但是读取方式相对于比较多。原创 2023-06-30 14:18:14 · 57 阅读 · 0 评论 -
19,类与对象(多态)
将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口。在多态中,通常父类中虚函数的实现的毫无意义的,主要都是调用子类重写的内容,因此可以将虚函数改为纯虚函数。抽象类的子类必须重写父类(抽象)中的纯虚函数,否则也属于抽象类。静态多态:函数重载和运算符重载属于静态多态,复用函数名。静态多态的函数地址早绑定----编译阶段确定函数地址。动态多态的函数地址晚绑定----运行阶段确定函数地址。原创 2023-06-29 19:32:56 · 46 阅读 · 0 评论