- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 剑指off-包含min函数的栈
#include<iostream>#include<fstream>#include<string>#include<stack>using namespace std;//需求分析;能够返回当前栈中的最小值,其余与普通栈相同,且返回最小值并不将其出栈//思路分析:利用辅助栈,辅助栈栈顶存储当前最小值,数据栈用于实现出栈、入栈等操作/*注意:1、在弹出数据栈数据时,需要考虑当前数据是否为最小值,若为最小值需要将辅助栈顶数据一并弹出,否则将.
2021-08-24 11:39:40
182
原创 2021C++基础巩固
1、前置递增(递减)与后置递增(递减)区别 均会对变量进行递增(递减),但在表达式运算中结果不同。前置递增(递减)会先对变量进行递增(递减)操作再计算,而后置则相反。编程实例:#include<iostream>using namespace std;int main() { int value1 = 3; int value2 = 3; // a++ ==++a; /*value1++; ++value2; cout << "value1++:..
2021-08-24 11:04:07
307
原创 linux学习1基础命令
1、基本操作 ctrl+p 查找上一个历史命令 ctrl+n 查找下一个历史命令 ctrl+b 光标往回走一个 ctrl+f 光标往前走一 ctrl+a 光标移到行首 ctrl+e 光标移到行尾 ctrl+d 删除光标后边的一个字符 光标盖住的字符为光标后边的字符 ctrl+u 删除光标前边的所有字符 智能提示功能 tab 按两次显示所有当前输入字符开头的命令 可以用...
2019-03-14 11:32:03
570
转载 PK案例
1、制作csv文件,用excel制作另存为逗号分隔 Hero.csvheroId heroName heroHp heroAtk heroDef heroInfo 1 亚瑟 500 10 30 血厚防高 2 后裔 300 30 15 功高血少 3 赵云 400 2...
2019-03-10 15:35:04
403
1
转载 STL综合案例演讲比赛
1)某市举行一场演讲比赛(speech_contest),共有24个人参加,按参加顺序设置参赛号。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。2)比赛方式:分组比赛 每组6个人 随机分组 第一轮分为4个小组,根据参赛号顺序依次划分,比如100-105为一组,106-111为第二组,依次类推,每组6个人,抽签(draw)决定演讲顺序。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一...
2019-03-05 11:22:08
3027
原创 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
330
原创 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
194
原创 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
171
原创 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
210
原创 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
205
原创 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
235
原创 STL学习3常用算法3.2适配器
1、函数对象适配器 1.1 bind2ndz或者bind1st 将两个参数进行绑定 1.1.1 bind2nd 将参数绑定为函数对象的第二个参数 1.1.2 bind1st的参数绑定是相反的 将参数绑定为函数对象的第一个参数 1.2 继承 public binary_function<类型1,类型2,返回值> 1.3...
2019-03-02 17:44:40
215
转载 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
171
原创 STL学习2常用容器2.8map/multimap
1、关联式容器,key和value每个元素都是对组2、所有元素根据元素的键值自动排序,所有元素都是pair同时拥有实值和键值,其中第一个元素为键值,第二个为实值,可以允许 两个元素的实值相同,不允许键值相同,可以通过迭代器改变元素的实值不能改变键值3、map与list拥有相同的某些性质,在进行元素的新增insert和删除erase操作时,操作之前的所有迭代器在操作完成之后依然有效(被删除元...
2019-02-28 19:39:21
209
原创 STL学习2常用容器2.7set/multiset
一、set容器1、关联式容器,内部插入数据时候自动排序,不允许插入重复的key值2、set/multiset容器不可以通过迭代器修改里面的元素,因为默认有了排序规则,其底层实现是红黑树,红黑树是平衡二叉树的一种3、树的简单知识 3.1二叉树:任何节点最多只允许有两个子节点,分别为左子节点和右子节 3.2平衡二叉树:左子树与右子树的高度的绝对值不能大于1,且这棵树的子...
2019-02-28 09:48:58
190
原创 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
170
原创 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
158
原创 STL学习2常用容器2.1string
string容器注意:1)、索引都是从0开始; 2)、find查找字符串第一次出现的位置,rfind(right 从右开始查找)查找最后一次出现的位置 3)、当指定替换区间时,即使待替换的字符串长度大于该区间也将执行且不会影响区间外的内容,原始string对象 长度将增加。...
2019-02-27 18:47:08
156
原创 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
205
原创 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
205
转载 STL学习2常用容器2.2vector
vector容器 单端开口 2.1 与数组类似,但是动态分配内存;2.2 支持随机存取,使用随机访问迭代器,普通指针也满足;一个vector的容量永远大于或等于其大小,其为动态增加大小,满载时将申请一个比原来内存更大的空间再将原始数据拷贝新空间并释放原空间(一旦引起该空间的重新配置指向原vector的迭代器将全部失效) 2.3 v.resize(int num,elem)重新...
2019-02-25 20:23:44
166
转载 STL学习1初识
STL基本概念STL从广义上分为:容器(containter)、算法(algorithm)、迭代器(iterator) 六大组件:容器(各种数据结构)、算法(各种算法sort、search…)、迭代器(容器与算法之间的桥梁,所有容器有自己的专属迭代器、原生指针也是一种迭代器)、仿函数(functors行为类似与函数,是一种重载了operator()的class或class template)...
2019-02-25 20:22:29
236
原创 c++ primer plus 第六版第十八章编程练习
18.1//main.cpp#include<iostream>#include<initializer_list>using namespace std;template<typename T>double average_list(initializer_list<T>i1){ int count = 0; double s...
2019-01-15 10:15:28
318
原创 c++ primer plus 第六版第十八章学习笔记
1、值与右值:左值可出现在赋值语句的左边,如:变量名、解除引用的指针;右值可出现在赋值表达式右边,但不能对其应用地址运算符的值,包括字面常量、x+y表达式等。2、函数形参为左右引用可接受的实参类型:(例见复习题18.2)1)、当形参为const类型的左值引用时可接受左值和右值类型的实参,此时的形参将被分别初始化为左值和右值的临时拷贝;2)、当形参为非const类型的左值引用时,可接...
2019-01-15 10:13:39
243
原创 c++ primer plus 第六版第十七章编程练习
17.1方法一:采用peek方法(注意该方法只读取下一个字符但不抽取)//main.cpp#include <iostream>int main(){ using namespace std; cout << "enter your string to count<$ for end> :\n"; int count = 0; int i ...
2019-01-08 15:36:54
429
原创 c++ primer plus 第六版第十七章学习笔记
Ostream类字符显示方法(需用对象调用);put(char)(用于单个字符显示);write(char*,int)(用于显示int指定的多个字符,不检查字符串是否越界),其第一个参数为读取数据的地址,第二个参数为所需读取的字符数(读取多个字符)或者字节数(读取单个字符或数值),若要读取二进制数值,将数值强制转换为char*类型并作为第一个参数,第二个参数则原数值类型所占的字节数(可以用size...
2019-01-08 15:33:50
318
原创 c++ primer plus 第六版第十六章编程练习
16.1//main.cpp#include <iostream> #include<string>using namespace std;bool plalindrome1(const string &st);int main(){ string st,temp; cout << "enter a lowercase strin...
2018-12-27 11:01:43
289
原创 c++ primer plus 第六版第十六章学习笔记
string类 智能指针类:用于指向new、new[]分配的动态内存,当智能指针对象过期时其析构函数将使用配套的delete;差别:为防止智能指针间的赋值导致的重复删除对象所采取的的措施:auto_ptr、unique_ptr将转让所有权,unique_ptr更安全,shared_ptr采用引用计数当计数为零时才调用析构函数;析构函数:auto_ptr、shared_ptr均只有与new配套的d...
2018-12-27 10:57:29
327
原创 c++ primer plus 第六版第十五章编程练习
15.1//tv.h#ifndef TV_H_#define TV_H_#include<iostream>class Remote;//不加该前项声明对void set_rstyle(Remote&r)函数进行定义时不能识别Remote类类型,且该前项声明必须位于Tv类声明前class Tv{public: friend class Remote; e...
2018-12-20 19:04:00
569
原创 c++ primer plus 第六版第十五章学习笔记
1、不同类间的友元:1)友元类;A类是B类的友元;A中所以的方法都可以访问B类的私有成员,在B类公有成员中声明添加friend class B;语句即可。2)特定友元成员函数:A类中的特定成员函数是B类的友元;只有在B类中声明为其友元的A类成员函数才能访问B类的私有成员,在B类公有成员声明中添加:friend 函数返回值 A类名::函数原型;语句即可。此时由于在A类友元声明中用到了B类名...
2018-12-20 18:57:07
758
1
原创 c++ primer plus 第六版第十三章编程练习
13.1//classic.hclass Cd{private: char performers[50]; char label[20]; int selections; double playtime;public: Cd(const char *s1,const char *s2, int n, double x); //Cd(const Cd&d);...
2018-12-17 19:28:41
548
2
原创 c++ primer plus 第六版第十三章学习笔记
派生类不能直接访问基类的私有成员,必须通过基类方法访问基类的私有成员 派生类重新定义了基类方法,在使用重新定义的方法时应使用作用域解析运算符 可以将派生类对象的地址赋给基类指针,此时可以通过指针调用派生对象的基类方法,若基类方法声明为虚函数,则可以通过该指针调用在派生对象中重新定义的方法。只有通过显示类型转换才能将基类对象地址赋给派生类指针,且一般不这样做,不安全。 虚函数只能用于对象的成员...
2018-12-17 19:25:56
254
原创 c++ primer plus 第六版第十四章学习笔记
1、is-a关系:公有继承,获得实现与接口;has-a关系:包含、私有、保护继承,获得实现不获得接口。2、公有、私有、保护继承:基类的私有成员都不能直接访问,只能通过基类方法调用;公有继承可以通过派生类直接调用基类方法,私有和保护继承只能通过基类名调用基类方法;对于隐式向上转换(将基类指针或引用指向派生类):公有继承可以在所有对象中进行,保护继承只能在派生类中使用,私有继承不允许这种转换。...
2018-12-17 19:25:03
298
原创 c++ primer plus 第六版第十四章编程练习
14.1//Wine.h#include<iostream>#include<string>#include<valarray>#include<utility>typedef std::valarray<int> ArrayInt;typedef std::pair<ArrayInt, ArrayInt>...
2018-12-17 19:23:51
442
原创 c++ primer plus 第六版第十二章编程练习
12.1//Cow.hclass Cow{ char name[20]; char *hobby; double weight;public: Cow(); Cow(const char*nm, const char *ho, double wt); Cow(const Cow &c); ~Cow(); Cow&operator=(const Cow &...
2018-12-08 19:00:18
278
原创 c++ primer plus 第六版第十一章编程练习答案
11.1//vector.h#ifndef VECTOR_H#define VECTOR_H#include<iostream>namespace VECTOR { class vector { public: enum Mode { RECT,POL }; vector(); vector(double n1, double n2, ...
2018-11-30 17:16:42
464
原创 c++ primer plus 第六版第十一章学习笔记
类定义中成员函数与非成员函数区别1)调用区别:成员函数由类的对象调用,隐式的访问调用类的数据;非成员函数不由类调用,必须显式的传递参数以访问参数的数据,即不能用:对象.方法来调用非成员函数,只能像普通函数那样来调用非成员函数。 2)常规非成员函数不能用于访问类的私有数据,而成员函数可以访问类的私有成员。 3)非成员函数在函数定义时不使用“类名::”限定符,而成员函数则...
2018-11-30 17:11:08
243
原创 c++ primer plus 第六版第九章编程练习
9.1//golf.hconst int Len = 40;struct golf{ char fullname[Len]; int handicap;};void setgolf(golf &g, const char *name, int hc);int setgolf(golf &g);void handicap(golf &g, int hc...
2018-11-17 11:21:57
246
原创 c++ primer plus 第六版第九章学习笔记
静态、自动、动态变量:静态指变量在使用完后不会消失,编译器会为其指定特定的内存空间;自动变量在使用完后便会消失,编译器将其存在称为栈的地方;动态变量指用c++运算符new或c函数malloc()分配的内存,不是LIPO,其分配释放顺序取决于new、delete的使用,这个内存空间为堆。2、Static静态变量声明说明:在函数或代码块外面声明的变量为全局变量,当不加任何说明符或者加exte...
2018-11-17 11:18:40
190
专用modbus串口调试软件
2018-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人