自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 12-06常用集合算法

算法简介:Set_intersection//求两个容器的交集Set_union//求两个容器的并集Set_difference求两个容器的差集***容器必须是有序的。

2023-08-23 22:50:09 50

原创 12-05常用算数生成算法

算术生成算法属于小型算法,使用时包含的头文件#include<numeric>算法简介:Accumulate//计算容器元素累计和Fill//向容器中添加元素。

2023-08-23 22:48:57 46

原创 第一章 ns3-Logging(日志)系统

ns3仿真系统,日志(Logging)系统详细讲解,路由仿真,TCP仿真,ns3卫星网络仿真,sns3卫星模块

2023-08-23 22:46:02 178

原创 12-04常用拷贝算法

Copy//元素中指定范围元素拷贝到另一个元素中Replace//将容器内指定范旧元素指定为新元素Replace_if//容器内指定范围满足条件的元素替换为新元素Swap//互换两个容器的元素。

2023-08-21 21:53:18 44

原创 12-03常用排序算法

Sort//对容器元素进行排序Random_shuffle//洗牌 指定范围内元素随机调整次序Merge//容器元素合并,并存储到另一容器Reverse//反转指定元素。

2023-08-21 21:51:21 23

原创 12-02常用查找算法

Find()//查找元素Find_if()//按条件查找元素Adjacent_find//查找相邻重复元素Binary_search//二分查找法Cout//统计元素个数Cout_if()//按条件统计元素个数。

2023-08-21 21:50:28 23

原创 12-01STL-常用遍历算法

概述:算法主要是由头文件<algorithm><functional><numeric>组成<algorithm>是所有STL头文件最大的一个,范围涉及比较、交换、查找、遍历操作、复制、修改等等<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数<functional>定义了一些模板类,用以声明函数对象常用遍历算法:For_each()//遍历容器Transform//搬运容器到另一个容器。

2023-08-21 21:49:22 35

原创 11-03STL函数对象-内建函数对象

Template<class T> T multiplies<T>//乘法仿函数。Template<class T> T divides<T>//除法仿函数。Template<class T> T modules<T>//取模仿函数。Template<class T> T negate<T>//取反仿函数。Template<class T> T minus<T>//减法仿函数。Template<class T> T plus<T>//加法仿函数。其中negate是一元运算,其他是二元运算。

2023-08-21 21:48:14 20

原创 11-02函数对象-谓词

如果operator()接收一个参数,那么叫做一元谓词。如果operator()接收一个参数,那么叫做二元谓词。返回bool类型的仿函数称为谓词。

2023-08-21 21:47:25 29

原创 11-01STL-函数对象

函数对象在使用时,可以像普通函数那样,可以有参数,可以有返回值。函数对象使用重载的()时,行为类似函数调用,也叫仿函数。函数对象超出普通函数的概念,函数对象可以有自己的状态。重载函数调用操作符的类,其对象常称函数对象。函数对象(仿函数)是一个类不是一个函数。函数对象可以作为参数传递。

2023-08-21 21:46:17 24

原创 10案例-员工分组

公司招聘了10个员工(ABCDEFGHIJ),10名员工进公司后需要指派员工在那个部门工作。3分组后,将员工部门编号作为key,具体工作为value,放到multimap中。通过multimap进行信息插入 key(部门编号)value(员工)员工信息有:姓名,工资组成;部门分为:策划,美术,研发。2遍历vector容器,取出每个月员工,进行随机分组。1创建10名员工,放到vector中。随机给10名员工分配部门和工资。4分部门显示员工信息。

2023-08-21 21:45:12 33

原创 9map/multimap容器

/删除区间[beg,end)的所有元素,返回下一个元素的迭代器。//查找key是否存在,存在返回迭代器,不存在返回set.end();//删除pos迭代器所指的元素,返回下一个元素的迭代器。本质:map/multimap属于关联式容器,底层结构是二叉树实现。Erase(key);//删除容器中值为key的元素。//map默认构造函数。//在容器中插入元素。//统计key的元素个数。//返回容器中元素的数目。

2023-08-21 21:44:17 25

原创 8set/multiset容器

/删除区间[beg,end)的所有元素,返回下一个元素的迭代器。//查找key是否存在,存在返回迭代器,不存在返回set.end();//删除pos迭代器所指的元素,返回下一个元素的迭代器。//统计key元素的个数,对set而言只有0和1;不允许容器有重复的元素//插入重复数据不会错,但是不会显示。//删除容器中值为elem的元素。//在容器中插入元素。//返回容器中元素的个数。//交换两个集合容器。

2023-08-21 21:43:07 26

原创 7List容器

/重新指定容器大小,容器变长,以elem填充,容器变短,尾部删除。//在pos位置插入[beg,end]区间的数据,无返回值。//在pos位置插入elem元素的拷贝,返回新数据的位置。//重新指定容器大小,容器变长,以默认值填充,容器变短,尾部删除。//删除[beg,end)区间的数据,返回下一个数据的位置。//构造函数将[beg,end)区间中的元素拷贝给本身。//将[beg,end)区间中的数据拷贝赋值给本身。//删除pos位置的数据,返回下一个数据的位置。

2023-08-17 21:52:15 23 1

原创 6queue容器

Queue是一种先进先出(FIFO,First In,First Out)的数据结构,他有两个出入口。Queue&operator=(const queue&que)//等号重载操作符。队列只允许队头和队尾才可以被外界使用,因此队列不允许有遍历行为。队列容器允许从一端新增元素到另一端移除元素。Posh(elem);//从队头移除第一个元素。//返回最后一个元素。队列中进数据称为入队push。队列中出数据称为出队pop。

2023-08-17 21:51:04 24 1

原创 5stack容器

/stack采用模板实现,stack对象默认构造。栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为。Stack是一种先进后出的数据结构,它只有一个出口。Push(elem);//从栈底移除第一个元素。//判断堆栈是否为空。

2023-08-17 21:48:59 48 1

原创 4STL-deque容器

Deque.resize(int num,int elem)//重新指定长度为num,若容器变长,ele填充;// 在pos位置插入[beg,end)区间的数据,无返回值。//在pos位置插入一个elem元素的拷贝,返回新数据的位置。Erase(beg,end)//删除[beg,end)区间的数据,返回下一个数据的位置。Assign(beg,end)// 将[beg,end)区间的元素拷贝给本身。Erase(pos)//删除pos位置的数据,返回下一个数据的位置。//在尾部删除一个数据。

2023-08-17 21:47:19 28 1

原创 3STL-String容器

/替换从pos开始n个字符串为字符串s。String&insert(int pos,int n,int c)//在指定位置插入n个字符c。String&erase(int pos,int n=npos)//删除从pos开始的n个字符。

2023-08-17 21:40:38 32 1

原创 2STL-Vector容器

功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间(内存有显示,提前限定),而vector可以动态扩展动态扩展:并不是在原有空间之间续接新空间,而是找一块更大的内存空间,然后将原始数据拷贝到新空间,释放原空间。v.rend()指向第一个元素的前一个元素v.begin()指向第一个元素v.insert()插入函数v.rbegin()指向最后一个元素v.end()指向最后一个元素的后一个元素注意vector支持随机访问迭代器 函数原型vector

2023-08-15 23:13:09 31

原创 1STL初识

STL分为六大组件 分别是:容器,算法,迭代器,仿函数,适配器,空间配置器。非质变算法:是指运算过程中不会更改元素内的区间内容,如查找,计数,遍历等。关联式容器:二叉树结构,各元素之间没有严格的物理上的顺序关系。质变算法:运算过程会更改区间内元素,如拷贝,替换,删除等。常用数据结构:数组,链表,树,栈,队列,集合,映射表等。读写,支持++,--,[n],-n,=序列式容器:强调值的排序,序列中每个元素有固定的位置。STL从广义上分:容器,算法,迭代器。读写操作,可以跳跃式访问,最强迭代器。

2023-08-14 23:52:06 33

原创 12文件操作

文件可以将数据持久化C++对文件操作需要包含同文件<fstream>文件分为两种:1文本文件 以ASCII码形式存储在计算机中2二进制文件 以二进制形式存储计算机。

2023-08-13 23:40:46 11 1

原创 11C++提高编程之模板

解决方式2:将声明和实现写道同一个文件夹中,并更改后缀名为.hpp,hpp是约定的名称,并不是强制。建立一个通用函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来带代表。1当子类继承的父类时一个类模板时,子类在声明的时候,需指定父类中T的类型。1.模板并不是万能的,有些特定的数据类型,需要具体化方式做特殊实现。(1)自动类型推导,必须推导出一致的数据类型T,才可以使用。(3)如果利用显示指定类型的方式,可以发生隐式类型。(2)模板必须要确定出T的数据类型,才可以使用。

2023-08-13 23:11:06 68 1

原创 10类和对象之多态

多态分两类静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行多态静态多态和动态多态区别:静态多态函数地址早绑定-编译阶段确定函数地址动态多态的函数地址晚绑定-运行阶段确定函数地址。

2023-08-12 23:01:08 26 1

原创 9类和对象之继承

私有继承:父类三种成员public,protected变私有,private访问不到。1羊继承了动物数据,驼也继承了动物数据当羊驼继承数据时就会产生二义性。语法:class 子类:继承方式父类1,继承方式 父类2....结论:继承中先调用父类构造,子类构造,再调用子类析构,父类析构。当子类和父类出现同名成员,如何通过子类对象,访问子类或父类成员。1父类私有成员子类访问不到 2子类类外访问不了保护权限。1父类私有成员子类访问不到 2子类类外访问不了保护权限。继承的语法:class 子类:继承方式 父类。

2023-08-12 18:06:01 25 1

原创 8类和对象之运算符重载

运算符重载概念:对已有的运算重新进行定义,赋予其另外一种功能,以适应不同的数据类型。

2023-08-12 18:04:07 28 1

原创 7类和对象之友元

友元:友元的目的就是让一个函数或者类访问另一个类中私有成员属于特殊情况,比如亲人之类的开后门友元关键字:friend友元的三种实现全局函数做友元类做友元成员函数做友元。

2023-08-12 18:02:55 18 1

原创 6类和对象特性-C++对象模型和this指针

C++中空指针也可以调用成员函数,但是也要注意有没有用到this指针。在类的非静态成员变量中返回对象本身,可用return*this。静态成员变量和静态成员函数以及非静态成员函数都不属于类的对象上。成员属性声明时加关键字mutable后,在常函数中依然可以修改。this指针隐含每一个非静态成员函数内的一种指针。在C++中,类的成员变量和成员函数分开存储。this指针指向被调用的成员函数所属对象。成员函数后加const称该函数为常函数。声明对象前加const称该对象为常对象。常对象智能调用常函数。

2023-08-11 23:07:27 28 1

原创 5类和对象之-对象初始化和清理

C++利用构造函数和析构函数去解决这两个问题,这两个函数编译器会自动调用,完成对象初始化和清理工作。对象初始化和清理工作是编译器要我们去做的事情,我们如果不提供构造和析构,编译器会自动提供构造和析构函数的空实现。主要用于创建对象时为对象成员属性赋值,构造函数由编译器自动调用,无需手动调用。C++面向对象来源于生活,每个对象都会有初始化设置和对象销毁前清理数据处理。如果用户定义有参构造函数,c++不在提供无参构造,但是会提供默认拷贝构造。语法:构造函数():属性1(值1),属性2(值2)…

2023-07-02 21:38:15 56 1

原创 4类和对象之-封装

行为:人为对象,它的跳高跳远,走路都是其行为。cout

2023-06-30 10:27:15 34 1

原创 3函数提高

(1)如图所示,调用函数func中有参数,就会覆盖函数定义中的初始化参数值。调用函数为func(10)会调用func(const int&a);(2)函数定义某个位置有默认参数,从这个位置右边都要有默认参数。(3)如果函数声明有默认值,那么函数实现就不能有默认值。调用函数为func(a)会调用func(int&a);引发函数二义性报错,所以有函数重载最好不定义默认参数。函数定义:返回值类型 函数名(数据类型){}函数参数类型不同或者个数不同或者顺序不同。(3)函数重载遇到默认参数。(2)函数重载注意事项。

2023-06-28 11:29:01 32 1

原创 2C++引用

void showPrint(const int &a)//a值不可修改。Int &ref=a;相当于int*const ref=&a;cout << "a的地址" << &a << endl;cout << "b的地址" << &b << endl;cout << "a的地址"<<&a << endl;cout << "b的地址"<<&b << endl;2.返回函数做左值,返回的是局部变量而不是局部变量的值。作用:函数传参时,可以利用引用的技术让形参修饰实参。

2023-06-26 10:59:18 38 1

原创 0 C++指针

c++指针

2023-06-25 11:36:13 55

原创 1内存分区模型

C++内存分区模型

2023-06-24 22:28:35 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除