随笔分类 - C++编程与调试
摘要:在 C++ 中,DBL_MAX 是一个定义在 <cfloat> 头文件中的宏,用于表示 double 类型能够表示的最大有限值。对于浮点数,C++ 标准库还定义了 FLT_MAX,表示 float 类型的最大值。1. DBL_MAX 类型: double 最大值: DBL_MAX 的值通常大约为 (
阅读全文
摘要:答案是安全的。 条件语句中同时进行空指针检查和解引用,但要确保解引用发生在检查之后,并且需要注意运算符的优先级。 // 例如,在 C++ 中使用逻辑与运算符 if (p != nullptr && *p == someValue) { // 这里是安全的,因为 p 的空指针检查在前 // 可以安全地
阅读全文
摘要:#include的路径及顺序 //foo.cc包含头文件的次序(foo.cc是foo.h的实现文件) 1.foo.h //优先位置 2.C system file 3.c++ system file 4.其他库的.h文件 5.本项目内的.h文件 原因: 这种优先顺序排序保证党foo.h遗漏必要的库时
阅读全文
摘要:1、如果父类的析构函数不是虚函数,则不会触发动态绑定(多态),结果就是只会调用父类的析构函数,而不会调用子类的析构函数,从而可能导致子类的内存泄漏(如果子类析构函数中存在free delete 等释放内存操作时);2、如果父类的析构函数是虚函数,则子类的析构函数一定是虚函数(即使是子类的析构函数不加
阅读全文
摘要:今天做了一函数,在用const char* 指向一个字符串常量后,想着可不可以重新指向一个新的字符串常量,实验结果是可以的。 一开始是有些疑惑的, 因为通常说我们不能修改const char*指向的字符串常量,那就意味着不能对这个指针重新赋值,但事实上这样的理解是不对的。因为对这个指针重新赋值,没有
阅读全文
摘要:C++11标准新引入的static_assert功能可以实现静态断言,是一个非常强大的模板元编程工具,配合SFINAE特性可以在编译期发现不符合预期的不合理特化,并且给出自定义的错误信息。 1. _Static_assert 是 C11 中引入的关键字。 static_assert 是 C11 中引
阅读全文
摘要:Makefile入门二、理解$@、$^和$< ubuntu14.04 不重装更新CMake CMake的hello world(一)使用CMake windows下使用Cmake为自己创建的库添加版本信息 几个例子说清楚make 的赋值语句。 = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被
阅读全文
摘要:【函数指针的高级应用】 https://blog.csdn.net/szullc/article/details/86567580 c/c++ https://blog.csdn.net/szullc/category_8450784.html
阅读全文
摘要:最近学习了Vector的使用,在通用函数的背后,你了解它的工作机理么,你能回答下面几个问题么。如何不慎清楚,请看下文之简单剖析。后续问题和疑问,将在文后补充。 Q:是嵌套的vector数组中的二级vector在一级vector删除时需不需要手动删除?A:释放遵循有内到外,只有vector存的是指针时
阅读全文
摘要:模式某种角度上来讲就是对象组合。不要看他们都是对象组合就好像是一样的。模式的动机,意图,使用场合,组合方式,这些都是模式的一部分。其中细微的不同足以区分不同的模式. 行为模式的主要特点就是处理的是对象之间的通信方 式,往往是通过引入中介者对象将通信双方解耦,在这里实际上就是将Context与实际的算
阅读全文
摘要:如何让VSCode做C++开发的IDE? 1.安装MINGW, 配置PATH 编译器安装成功 2.安装VS 插件 在terminal调试下 3.配置 launch.json, 项目根目录\.vscode下。复制进去之后要修改miDebuggerPath参数,这里面填写自己的gdb.exe路径,编译配
阅读全文
摘要:头文件 map: #include < map > unordered_map: #include < unordered_map > 内部实现机理 map: map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素,因此,
阅读全文

浙公网安备 33010602011771号