- 博客(58)
- 收藏
- 关注
原创 一文读懂 c++ 容器
选择std::vector时应该注意的是,为了支持动态扩展,它可能会在内存中实现多次分配和复制。当vector容量不足以容纳更多元素时,它将进行重新分配,并将所有元素复制到新的内存地址。为了减少这种分配和复制的开销,如果知道大致所需的容量,可以使用reserve()方法预先分配足够的空间。总的来说,std::deque 在需要灵活操作两端元素的场合表现良好,特别是当你不确定需要的容量大小,并且插入或删除操作在元素集的两端比中间更频繁时,它是一个很好的选择。
2024-01-22 16:37:23
664
原创 c++ extern
使用 extern “C” 链接 C 语言代码是一种常见的实践,特别是当你需要在 C++ 程序中使用由 C 语言编写的库时。C 语言并不支持重载,因此,如果想要在 C++ 中链接到 C 函数,就需要阻止 C++ 编译器对这些符号进行名字粉碎。在 C 语言中,extern 关键字主要用于声明变量或函数,其真正的定义可能在程序的另一个位置或在不同的源文件中。确保 C++ 编译器不会对 my_c_header.h 中声明的 C 函数进行短命操作,允许 C++ 代码链接和调用这些 C 函数。
2024-01-20 00:30:43
577
原创 c++ 指针的算术运算
在 C++ 中,对指针进行算术运算是一种常见的操作,这样可以在内存中移动指针来访问数组或其他连续分配的数据结构。指针的算术运算允许对指针进行递增 (increment)、递减 (decrement)、加法和减法运算。这些操作通常在指向数组的指针上执行,因为它们依赖于指针指向一块连续的内存区域。递增(++)和递减(–)值会增加或减小所指向类型的大小对指针递增 (ptr++ 或 ++ptr) 会使指针向前移动到它所指向类型的下一个对象。对指针递减 (ptr-- 或 --ptr) 会使指针向后移动到它所
2024-01-20 00:00:00
670
原创 c++ 指针的解引用
/ 合法的读操作// 非法的写操作,编译时会出错解引用多级指针int x = 10;// p 是一个指向 x 的指针// pp 是指向指针 p 的指针// 解引用一次得到 p//解引用两次得到 x;z 被赋值为 p 指向的值,即 x 的值//pp 是一个多级指针,即指针的指针。解引用两次 **pp 可以获取 pp 指向的指针所指向的值,即 x 的值解引用与数组 subscript 符号的等效性需要注意的是// 直接使用数组 subscript 方式访问第三个元素。
2024-01-19 08:00:00
1797
2
原创 c++ 指针的安全问题
delete ptr;// 避免悬挂指针int* ptr;// 未初始化的指针*ptr = 5;// 未定义行为,对野指针解引用i <= 10;i++) {// i = 10 时会导致缓冲区溢出// 调用函数,演示缓冲区溢出return 0;指针 ptr 指向的是栈上分配的变量 i 的地址,而不是通过 new 关键字分配的堆内存。尝试用 delete 释放栈上的变量是不允许的,这会导致程序运行出现未定义行为。int i = 42;// 错误:试图释放一个非动态分配的指针。
2024-01-17 00:00:00
1484
原创 c++ list<map<string, string>>获取map(Key/Value)值
c++ list获取map(Key/Value)值。
2023-10-10 23:37:40
886
原创 _MSC_VER介绍
_MSC_VER: Microsoft的C编译器的版本MS:Microsoft(微软的简写)C:MSC就是Microsoft出的C编译器。VER:Version(版本)的简写。#if _MSC_VER>1600 //如果编译器的版本大于1600则该语句被编译#pragma execution_character_set("utf-8")//解决中文乱码问题#endif关于Microsoft的C编译器的版本 的介绍MS VC++ 16.0 _MSC_VER = 1928 (
2023-10-08 23:59:09
895
原创 Host is not allowed to connect to this MySQL server解决方法
Host is not allowed to connect to this MySQL server解决方法
2023-02-08 18:00:13
2134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人