随笔分类 - C++
摘要:Map: 在使用标准模板库中的map容器且遇到键值对的值为自定义struct或class类型时,考虑到特殊场景(即不能确保key自始至终唯一),若插入新元素(new 对象),在程序执行结束释放内存时会造成内存泄露(重复的key对应的value所申请的内存空间)。 因此在插入新元素前需要判断key是否
阅读全文
摘要:%在C或者c++中可以用来表示引导符,用于引导输入输出项表列的格式 %d表示的是uint32%u表示的是Uint32类型%X表示的Uint64类型,无符号以16进制表示的整数%s表示的是char指针也可以是字符串常量%f表示的是float类型%ld输出long整数%p指针的值%e指数形式的浮点数
阅读全文
摘要:在C++中可以直接用地址来访问内存,并且不会确保这些位置对被引用的内存缓冲区有效。这可能导致在与其他变量、数据结构或者内部程序的数据相关的内存位置上执行读写操作。因此攻击者能够执行任意代码、预期的控制流、读取敏感消息或者导致系统崩溃。 内存越界的种类: 1.可索引资源的错误访问,范围错误。 2.不检
阅读全文
摘要:new是C++提供的用于动态申请存储空间的运算符。一、new的使用。new+数据类型(初值),返回值为申请空间的对应数据类型的地址。1.使用new申请一个对象 float *p = new float(10);//申请了一个初值为10的浮点数据 2.使用new申请数组 int *array = ne
阅读全文
摘要:CMake是一个开源、跨平台的工具,旨在构建、测试和打包软件,CMake可以使用简单的语句和编译配置文件来控制软件的编译过程。在这里主要介绍CMake语句、CMake的流程控制、内置变量、查看log CMake语句主要有3类用法: 设置变量:set、file、list、find_library、au
阅读全文
摘要:一、Const_cast const_cast是修改类型的const或者volatile属性。使用该运算方法后可以返回一个指向非常量的指针或者引用,使用该运算符后就可以返回一个指向非常量的指针(或者引用)。用法如下: const_cast<type_if>(expression),type_id和e
阅读全文
摘要:C++有可以使用static_cast、dynamic_cast、const_cast、reinterpret_cast来进行类型的转换。现在将每一个的使用方法进行一下总结。 1.static_cast 这个运算符的功能是把一个表达式转换为某种类型,但是没有运行时类型检查来保证转换的安全性。可以用来
阅读全文
摘要:在日常编码过程中,经常需要char*和string之间进行转换,char*如果要转换成string,需要有一个结束符(一般是'\0',就是ascii的第一个NULL)。如果没有设置结束符,在创建string的时候出出现数组越界。 我们创建的string的长度是3,但是如果我们把p[3]='\0'注释
阅读全文
摘要:在C/C++操作指针的时候我们经常需要要用到*和&运算符 一 *运算符基本运算 指针的声明,比如int* p;就是定义一个指向int类型的指针。 解引用。比如int x=*p就是把指针p指向的值赋值给x。 二&运算符的基本操作 求地址运算符,比如int *p;p=&X; 变量类型引用变量:就是某个变
阅读全文