摘要:
vscode 远程连接本地虚拟机中 Linux 系统 虚拟机配置 修改虚拟机的网络设置,将设置->网络->网卡1中的链接方式修改为桥接网卡 待验证 在网络中选择本地地址转换+端口转发 Linux 配置 Linux 安装 ssh 服务器 检查 ssh 服务器是否已经开启成功 systemctl sta 阅读全文
摘要:
Makefile 模板 模板介绍 支持存放中间文件的文件夹检查和创建 支持源文件位于不同文件夹内 模板 OBJOUT := ./out/ EXEOUT := ./out/ INCLUDE_DIR := ./include SRC_DIR_TEST = ./src/test/ SRC_DIR_THRE 阅读全文
摘要:
内存池 概念 内存池是一种内存分配方式,用于减少内存碎片和减少程序运行时间。 一次性向操作系统申请一大堆内存,在此之上构建需要的对象,用完之后统一返还给操作系统。 好处 这样做最大的好处是避免了频繁的 new/delete 开销和带来的内存碎片问题。 思路 在使用内存池技术时,程序预先申请分配一定数 阅读全文
摘要:
strcpy、strncpy、memcpy 的区别 strcpy 描述 将一个字符串复制到另一个字符串中 实现 char *myStrcpy(char* dest, const char* src){ if ((NULL == dest) || (NULL == src)){ return NULL 阅读全文
摘要:
String 类 介绍 手写一个 String 类 内容 一个 String 类 默认构造函数 带指针的构造函数 拷贝构造函数 移动构造函数 复制构造函数 析构函数 重载操作符 = += == [] << >> 字符串长度 字符指针 字符串操作函数 字符串拷贝 strcpy 获取字符串长度 strl 阅读全文
摘要:
完美转发 定义 完美转发指的是函数模板可以将自己的参数“完美”的转发给内部调用的其他函数中。 所谓的完美,指的是不仅能准确的转发参数的值,还能保证被转发的参数的左、右值属性不变 解决的问题 在 C++ 中如果想要将一个函数的参数转发给另一个函数时,需要保留原始参数的左右值属性。 完美转发的动机 以下 阅读全文
摘要:
右值引用 右值和左值 在 C++ 11 中可以去地址的、有名字的就是左值,反之,不能取地址的,没有名字的就是右值 左值 介绍 左值表示了一个占据内存中某个可识别的位置对象,可以出现在等号两边。能修改,可以长久保持 类型 函数名和变量名 返回左值引用的函数调用 前置自增自减表达式 --i,++i 由赋 阅读全文
摘要:
模板参数包 介绍 模板参数包是一种模板元编程技术,允许模板函数或者模板类接受可变数据的参数,这些参数被称为参数包。分为模板参数包和函数参数包 模板参数包表示零个或多个模板参数 函数参数包表示零个或多个函数参数。 省略号用于指示一个模板参数包或函数参数包,在函数调用时,编译器会将这些参数打包成一个对象 阅读全文
摘要:
元编程 定义 元编程是一种编程范式,它允许程序员便携通用代码,以便在不同数据类型上操作 元编程中,程序本身是动态的,程序运行也是动态的。元编程将程序作为数据来对待,从而赋予变成语言更加强大的表达能力 使用模板元编程实现类型选择和编译时计算 代码 #include<iostream> #include 阅读全文
摘要:
模板特化 介绍 模板特化是指在模板的基础上,针对某些特定的值,提供一种特殊的实现方式,模板特化分为两种,类模板特化和函数模板特化 类模板特化 类模板特化指的是在类模板上,针对某些特定的类型和值,提供一种特殊的实现方式。类模板特化分为全特化和偏特化两种。 类模板全特化 定义 全特化是指将模板参数列表中 阅读全文