自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022-1-26 泛型算法和函数对象

#include<algorithm>//泛型算法头文件template<typename IT,typename INSERT_IT>void Copy(const IT& first,const IT& last,INSERT_IT it)//拷贝区间[ ){ IT tmp=first; for(;tmp!=last;tmp++) { *it=*tmp; }}vector<int> v...

2022-01-26 20:54:38 808

原创 2022-1-25 STL迭代器

一、顺序型迭代器(遍历型迭代器)iterator——正向迭代器 reverse_iterator——反向迭代器 const_iterator——常量正向迭代器 const_reverse_iterator——常量反向迭代器 //函数模板,正向打印容器内元素template<typaname CON>void show(CON& src){ typaname CON::iterator it = src.begin(); for(;it != src

2022-01-25 20:43:53 505

原创 2022-1-24 STL容器

一、近容器int arr[ ]:数组 string:字符串,增删改查 string s;string s1(s.begin(),s.end());string s2(s1);s.push_back('c');s.pop_back();s.front();s.back();s.erase(pos);string::iterator it = s.begin();for(it;it!=s.end();it++){ if(*it=='a') { i

2022-01-24 14:12:23 745

原创 2022-1-22 继承和多态2

一、多态多态:分为静多态和动多态,静多态——编译时期的多态,又被称为早绑定(eg:函数重 载,模板);动多态——运行时期的多态——又被称为晚绑定(eg:继承中的多 态) 隐藏:子类中的成员会隐藏父类中的同名成员 覆盖:子类中的成员方法会覆盖父类中相同的虚函数 动多态的产生条件:指针或引用调用虚函数 + 对象必须完整 class Base{public: Base() { th...

2022-01-22 14:53:43 241

原创 2022-1-21 继承和多态1

一、继承类与类之间的关系:①嵌套——一个类中声明了另一个类,即一个类是另一个类的一部分; ②代理——一个类的接口是另一个类接口的子集,即一个类的功能需要 依赖另一个类的功能; ...

2022-01-21 13:28:23 312

原创 2022-1-20 模拟实现vector

一、容器近容器:只能容纳一种固定的数据类型的“器皿”(如string、int arr[10]、char str[10]) 容器:vector——数组 格式: vector<int> v1;for(int i=1;i<10;i++){ v1.push_back(i);} 实现 //Mvector.h#ifndef MVECTOR_H#define MVECTOR_Htemplate<typename T>class Mvector{

2022-01-20 23:00:00 173

原创 2022-1-18 Mstring的写时拷贝

一、写时拷贝当多个对象同时拥有同一块内存的时候,每个对象对这块内存都只有读取的权限 如果有某个对象需要改动这块内存时,就给该对象拷贝出一份独有的内存 省内存,省时间二、引用计数防止对象多次析构造成内存泄露 实现:在申请_str时,多申请四字节的空间用于存放引用计数 获取引用计数: int& Get_Num(){//先将_str强转为整形指针,再对其解引用,得到的即为_str内存中前四字节存放的整型计数值 return *((int*)_str);} 三、实现写时

2022-01-20 13:23:14 184

原创 2022-1-19 模板1

一、模板的引入重载:函数名相同,参数列表不同——静多态(编译时期的多态)——早绑定 C++中产生函数符号依赖于函数名和参数列表 假如能够把类型也当作参数传入函数中,可避免重载时大量重复代码的编写二、函数模板格式: template<typename T>bool compare(T a,T b){ cout<<"template<typename T>bool compare(T a,T b)"<<endl; return

2022-01-19 23:00:00 268

原创 2022-1-14 Mstring基础类实现

//Mstring.h#ifndef MSTRING_H#define MSTRING_H#include<iostream>using namespace std;#define DEFAULT_LEN 10class Mstring{public: Mstring(const char* str = NULL); Mstring(const Mstring& src); Mstring& operator=(const Mstring& s.

2022-01-14 17:46:07 178

原创 2022-1-11 面向对象3

一、类与类之间的关系组合:一个类是另一个类的组成部分(如eye和head,Node与List) 嵌套(特殊的组合):一个类在另一个类中(如将Node类定义在List中作为其成员) 代理:一个类的成员方法依赖于另一个类实现二、类的编译顺序编译本类名 编译成员名(成员方法和成员变量),编译嵌套类 编译方法体三、类的构造顺序先构造成员对象,再构造本对象 先析构本对象,再析构成员对象...

2022-01-11 20:21:10 98

原创 2021-12-30 面向对象2

一、类内权限private:私有的,除了自己类内部以外都不能使用 public:公有的,对外暴露的,外界具有读写操作权限 类内默认私有;struct中默认公有 权限选择:必须要对外界提供的,就放在public,其余都放在private;一般成员属性都放在 private,如果外界需要使用就提供公有接口二、定义对象初始化:在定义时给值,内存划分时给值 赋值:定义之后给值,内存划分完之后给值 //class Person//const int _...

2022-01-06 21:17:24 365

原创 2021-12-6 面向对象1

一、面向对象三(四)大特性:封装,继承,多态,(抽象)二、类 class成员属性 成员方法:每个类的普通成员方法都会默认将该类型的指针(*this)作为第一个参数在编译 期传入,在调用该函数时,会将使用到的对象的地址作为参数传入 this指针(指向本对象的指针):①普通成员方法的第一个参数,默认加上this指针 (编译期自动加入) ②在普通成员方法内使用到普通成员的地方,加上this-&g...

2021-12-06 20:15:41 511

原创 2021-12-1 C和C++的区别2

一、using namespace std;//tmp.h定义命名空间的头文件namespace AA{ typedef int INT; typename char CHAR;};using namespace AA;//使用整个命名空间int main(){ INT a = 10; return 0;}using namespace AA::INT;//使用某个命名int main(){ INT b = 10; //CH

2021-12-02 21:44:39 422

原创 2021-10-28 C和C++的区别1

函数的区别一、函数的默认值参数在函数声明或者定义的时候,给定参数默认值,如果实参传递时,不给该形参传值,则会按照默认值传参。 函数参数的默认值是在编译期生成指令的时候,直接生成入参指令。 int data = 10;int fun(int a, int b, int c = data)//变量在运行时取值,即编译期生成指令时 系统无法获得data的值,也就无法赋给变量c{ cout << a << endl; cout << b &l.

2021-11-01 18:01:01 64

空空如也

空空如也

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

TA关注的人

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