自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 move应用

move函数是将一个左值强转成T&&,T&&就相当于右值,这样在进行拷贝构造或者复制运算时就可以减少临时对象的内存空间的开辟。move应用最多的场景就是在STL中,下面展示一下move与不用move的区别:#include <iostream>#include <cstring>#include <cstdlib>#include <vector>using namespace std;class Str {pu

2021-03-29 15:09:13 213

原创 C++ 函数模板和类模板(一)--泛型编程

这个文章主要简单记录类模板和函数模板在类内外定义的使用方法#include<iostream>#include<string>using namespace std;//类A内有函数模板class A{public: template<typename T> //函数模板类内书写方式 T compare(const T& a, const T& b) { return a > b ? a : b; } template&

2021-03-08 17:46:58 117

原创 c++四种强转类型的用法

C++几种强制转换类型static_cast<>() 编译时检测语法:1.用于基本数据类型之间的转换2.用于基类指针或引用和子类指针或引用之间的转换3,.把数据类型转换成空指针4.把任何类型的表达式转换成void类型dynamic_cast<>() 运行后检测语法;1.用于基类指针或引用和子类指针或引用之间的转换const_cast<>()1.常量指针被转化成非常量的指针,并且仍然指向原来的对象;2.常量引用被转换成非常量的引用,并且仍然指向原来的对

2021-02-04 15:51:44 698

原创 C++深拷贝和浅拷贝

浅拷贝:触发条件:对象赋值时即会发生。适用情况:类中没有指针变量。深拷贝:触发条件:对象赋值即会发生。适用情况:类中有指针变量。PS:浅拷贝是把类中所有的函数,变量都copy一份给另一个对象,这就造成当类中有指针变量时,指针的内存地址也会相同。当类中没有指针变量时,用深拷贝或者浅拷贝两种方法都行。class Car{public: Car(){} Car(string s){ ctr = new char[s.length()+1]; snprintf(ctr, s.lengt

2021-02-03 16:58:27 211

原创 获取虚表指针地址,虚表地址,虚函数地址

获取虚表指针地址和虚函数地址重要规则:1.同一个类的对象虚表的地址是一样的。2.虚表是一块儿专门存放类的虚函数地址(也就是函数指针)的内存。3.定义一个对象后,构造器为其分配空间,而这个指向虚表的指针始终都是在第一个,也就是说这个指针的地址就是对象地址。PS:对象地址的前四个字节存放虚表地址。#include<iostream>using namespace std;class base{public: int a;public: virtu

2021-02-02 17:07:30 888

原创 记录map一个key传出两个value的小技巧

记录map一个key传出两个值的用法

2020-12-17 10:20:07 1191

空空如也

空空如也

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

TA关注的人

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