自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 内建函数对象使用,适配器使用

头文件#include// 仿函数.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<vector>#include<algorithm>#include<functional>using namespace std;class Myconpare...

2020-03-12 17:27:34 136

原创 谓词,匿名函数

是指普通函数或重载的operator返回值是bool类型的函数对象(仿函数)。// 仿函数.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<vector>#include<algorithm>using namespace std;class Greater2...

2020-03-12 10:36:44 176

原创 函数对象

函数对象 也叫仿函数,重载()操作符,使得类对象可以像函数那样调用一元仿函数 二元仿函数 看参数个数1.函数对象通常不定义构造和析构,所以在构造和析构时不会发生任何问题。避免了函数调用的运行风险2.函数对象可以有自己的状态3.函数对象可内联,性能好,用函数指针几乎不可能4.模板函数对象具有通用性。// 仿函数.cpp: 定义控制台应用程序的入口点。//#include "stda...

2020-03-12 10:14:12 277

原创 map

// map.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<map>using namespace std;void test01(){ map<int, int> m; m.insert(pair<int, int>(1, 10)); ...

2020-03-08 20:10:15 132

原创 set

setmultiset序列式怎么插入的怎么输出,关联式会排序,从小到大void test1(){ set<int> s1; s1.insert(5); s1.insert(4); s1.insert(3); s1.insert(2); printset(s1);// 2 3 4 5 if (s1.empty()) { cout << "ko...

2020-03-08 16:40:26 119

原创 list

// list.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<list>#include<string>#include<algorithm>using namespace std;/*void test01(){ list<int&...

2020-03-08 15:45:34 146

原创 deque 容器及案例

vector是单向开口的连续性空间,deque是双向开口的连续性空间deque与vector 的最大差异:一在于deque允许常数时间内对头端元素插入和删除操作二在于deque没有容量的概念,因为它是动态的以分段的连续空间组合而成,随时可以增加一段新的空间并连接起来,换句话说,向vertor那样"因旧空间不足而重新分配一段更大的空间,然后再复制元素,释放空间“这样的操作不会发生在deque身...

2020-03-07 20:14:01 195

原创 vector

尽量不要用insert在头部进行插入操作,因为要移动大量元素。动态增长原理插入新元素时,如果原来的空间不够,那么vector会重新申请一个更大的空间,将原来的数据拷贝过来,将原来的空间释放掉,把新元素插入到重新申请的空间。vector构造函数...

2020-03-07 17:01:36 113

原创 String

char* 是一个指针 String是一个类string 封装了char*,string是一个类string 和char可以相互转换,string通过c_str()转换成char// 容器迭代器分离实现.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<vector>//动态...

2020-03-06 17:35:07 90

原创 STL

STL从广义上分为 容器 算法 迭代器 和算法之间通过迭代器进行无缝连接容器中可以嵌套容器容器分为序列式容器和关联式容器迭代器可以理解为是用来遍历容器的指针,默认指向第一个位置,事实上,迭代器是一个类,这个类封装了一个指针迭代器相当于算法与容器之间的桥梁,给算法传入迭代器// 容器迭代器分离实现.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#i...

2020-03-06 15:40:38 109

原创 c++文件读写

// 输入输出流1.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iomanip>#include<iostream>#include<fstream>using namespace std;//文本文件读写void test1(){ const char * path = "C:\...

2020-03-06 09:52:23 164

原创 c++输入输出流

cout 全局输出流 输出数据到显示器cin 不是从键盘读数据,而是从缓冲区读取数据cerror标准错误 输出数据到显示器,没有缓冲区clog标准日志,输出数据到显示器,有缓冲区标准输入流cin.get() 一次只能读取一个字符,从缓冲区把数据拿走了 cin.get(一个参数) 读一个字符 cin.ge...

2020-03-05 11:27:22 163

原创 c++标准异常库,字符串拷贝

标准库中提供了很多异常类,他们通过类继承组织起来// c++标准异常.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include<stdexcept>using namespace std;class Person {public: int age; Person() ...

2020-03-04 16:48:25 150

转载 字符串作为参数 char char* char[] string , const char* to char(作为参数传递时)

**先看例子**例一#include "stdafx.h"#include <iostream>#include<math.h>using namespace std;class teacher{public: teacher(int id,const char *name) { m_id = id; ...

2020-03-03 23:30:55 2506

原创 c++异常 , 抛出字符串异常abort()has been called

函数返回值可以忽略,但是异常不可以整形返回值没有任何语义信息,而异常包含语义信息整形返回值缺乏相关的上下文信息。异常作为一个类,可以拥有自己的成员,这些成员就可以传递足够的信息。异常处理可以在调用跳级// 异常.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;...

2020-03-03 15:50:31 2216

原创 类型转换 static_cast dynamic_cast const_cast reinterpret_cast

1.static_cast //static_cast用于内置的数据类型,具有继承关系的指针或者引用,不进行安全检查,自转父,父转子都可以。2.dynamic_cast 通常在基类与派生类转换时使用只能转换具有继承关系的指针或引用, 进行安全检 查,只能由子类转换成基类。3.const_cast 主要针对const转换4.reinterpret_cast 用于进行没有任何关联之间的转...

2020-03-03 11:59:32 96

原创 MyArray

// Marray框架.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;template<class T>class MyArray {public: MyArray(int capacity) { this->mCapacity = ...

2020-03-01 16:01:59 635

原创 类模板碰到static成员

// 11类模板遇到static关键字.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;template<class T>class Person {public: static int aa;};template<class T>...

2020-03-01 16:01:12 126

原创 无法解析的外部符号

在类模板类外实现.h和.cpp分来写的时候//Person.h#pragma oncetemplate<class T>class Person {public: Person(T age); void show(); T age;};//Person.cpp#include "stdafx.h"#include"Person.h"template<c...

2020-02-29 22:37:58 180

原创 类模板类内实现,类外实现使用友元

// 类模板.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<string>#include<iostream>using namespace std;//类内实现template<class T1,class T2>class Person {public: T1 mName; T2 m...

2020-02-29 20:25:47 167

原创 c++函数模板 引用交换和指针交换类模板

函数模板模板技术,类型参数化,编写代码可以忽略类型为了让编译器区分是普通函数还是模板函数// 模板.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;template<typename T>//template<class t>//告诉编...

2020-02-28 11:54:24 455

原创 纯虚函数和抽象类

纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本纯虚函数为派生类提供一个公共界面(接口的封装和设计,软件的模块功能划分)纯虚函数的语法:virtual 类型 函数名(参数表)=0一个具有纯虚函数的基类称为抽象类(不管这个类有没有成员属性,只要这个类有纯虚函数,这个类就是抽象类,抽象类就是不能被实例化的,如果父类有两个周抽象函数,子类只实现了一个,那么这个...

2020-02-23 19:38:34 128

原创 动态静态联编,虚析构函数,重载重写重定义

动态联编和静态联编静态联编是程序的匹配,连接在编译阶段实现,也称为早期匹配,重载函数使用静态联编动态联编是指程序联编推迟到运行时进行,所以称为晚期联编(迟绑定)。switch和if语句是动态联编的例子虚析构函数// 友元函数.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<math.h>#include<ios...

2020-02-21 11:43:45 310

原创 多态意义,原理vptr指针,父类与子类步长

一 多态的意义如果有几个相似但不完全相同的对象,有时人们要求向它们发出同一个消息时,分别执行不同繁荣操作,这种情况就是多态现象由继承而产生的相关的不同的类,其对象对同一消息会做出不同的反应`父类{ void fight()` { cout<<"父类吃"<<eat<<endl; }子类{ void fight() { ...

2020-02-20 16:48:27 187

原创 c++多继承与虚继承

沙发床的m会出现按指代不明确(出现菱形)解决办法爷爷给爸爸变成虚继承这样孙子的m直接由爷爷继承得到,孙子也会继承爸爸的单独有的东西`// 友元函数.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<math.h>#include<iostream>#include<string>using ...

2020-02-20 15:24:59 108

原创 父类与子类细节

一 父类与子类的构造和析构顺序初始化子类对象时,如果子类的构造函数写的是Child(int a,int b):Parent(a){//a是父类的public成员变量,b是子类的public成员变量 this->b=b;}那么会先调用父类的有参构造函数如果子类的构造函数如下Child(int a,int b){ this->a=a; this->b...

2020-02-20 14:23:52 162

原创 c++类的集成和派生,继承的兼容性原则

c++中可重用性是通过继承实现的// 友元函数.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<math.h>#include<iostream>using namespace std;class A{public: void func() { cout << "funA" <...

2020-02-20 08:36:31 709

原创 c++操作符重载,单目和双目运算符的重载

1.c++允许重载的操作符2.重载不能改变运算符的优先级别3.不能改变运算符的结合性4.重载运算符的函数不能有默认的参数5.重载的运算符必须用户定义的自定义类型的对象一起使用,其参数至少应有一个是类对象(或是对象的引用)6用于类对象的运算符一般必须重载,但是有两个例外,运算符"=“和运算符”&"不用用户重载。7.应当使重载运算符的功能类似与在运算符作用于标准类型数据时候所实现的...

2020-02-19 09:06:37 533

原创 c++ 友元

友元函数,通过这个函数可以直接访问类的私有成员变量友元也可以是一个类,但是它破坏了类的封装,使得非成员函数可以访问类的私有成员// 友元函数.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<math.h>#include<iostream>using namespace std;class Point{...

2020-02-18 16:14:56 95

原创 c++自定义数组类

// zidingyi.cpp: 定义控制台应用程序的入口点。// zidingyi.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>#include "my_array.h"using namespace std;int main(){ my_array array1(10); for (in...

2020-02-18 15:15:00 1903

原创 c++ this指针

this 就是指向调用该成员函数方法的对象地址不是const Test *类型,因为指向的地址的内容可以更改*是Test const类型,因为不可以this++,即指针本身不可更改(Test *const this)例如:t1.get() //就是get(&t1)Test t1(10); //Test(&t1,10)若一个函数只想返回一个值,并不想改变它,而在这个函数...

2020-02-17 15:20:12 113

原创 c++与链表结合

c++货物管理用链表管理货物,用指针指向这个个链表定义一个类goods ,定义一个goods *next;方法buy(head,w),sale(head),在buy中会调用有参数的构造函数,使得总重加上w,并且将新的货物加入链表,sale只使得货物从链表删除即可,因为减重是自动调用析构函数得到的,因为sale中用了delete,会触发析构// panduan.cpp: 定义控制台应用程序的...

2020-02-17 14:35:00 181

原创 c++关键字new delete static 及内存使用,静态成员函数,返回对象本身,连续调用成员函数

之前的创建对象是在栈上创建的,那么如何在堆上创建呢?那么我们需要关键字"new"// panduan.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include<math.h>using namespace std;void test1()//在堆上开辟空间的三大步骤 开辟 赋...

2020-02-16 18:16:35 914

原创 构造函数初始化列表

构造函数初始化列表// panduan.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include<math.h>using namespace std;class A {public: A(int a) { m_a = a; } void printfa() {...

2020-02-15 21:05:18 181 2

原创 关于c++拷贝构造函数及应用场景,const char[3] 转换为char * strcpy strcpy_s

一:拷贝构造函数// panduan.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include<math.h>using namespace std;class test {public: test(int x, int y) { m_x = x; m_y ...

2020-02-14 21:32:34 872

原创 c++小练手

判断两个圆是否相交// panduan.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include<math.h>using namespace std;class point {public: void setxy(int x,int y) { m_x = x; m...

2020-02-14 14:33:23 97

原创 C++函数重载,函数指针

c++函数重载:函数名相同,形参列表不同// h_mingcheng.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;//函数的返回值,形参列表(参数个数,参数类型,参数顺序)//两个函数的函数的返回值,形参列表相同,则这两个函数是同一类型的函数,//就可以用...

2020-02-13 17:19:55 383

原创 C++函数默认参数和占位参数

// h_mingcheng.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;void func(int a=666){ cout << "a=" << a << endl;}//求立方体体积void get(in...

2020-02-13 16:38:14 199

原创 c++内联函数

// h_mingcheng.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;inline void printab(int a,int b)//内联函数没有压栈出栈了//适用于代码较少且频繁使用{ cout << a<<" " ...

2020-02-12 17:29:33 184

原创 c++基本操作

自定义命名空间#include "stdafx.h"#include <iostream>using namespace std;namespace sss { int g_a = 10;}int main(void){ using namespace sss; cout << g_a << endl;}命名空间的嵌套```c...

2020-02-10 17:51:33 1661

空空如也

空空如也

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

TA关注的人

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