不加 [] 的 std::unique_ptr<int></int> 管理单个 int,但想管数组就得显式写成 std::unique_ptr<int></int>。否则 delete 会调用非数组版本,只析构第一个元素,其余内存泄漏且行为未定义。
c++
精选推荐
MAUI Entry控件怎么自定义 MAUI输入框定制教程
C#如何将SecureString安全地用于XML
最新动态
C++怎么使用智能指针数组_C++unique_ptr与shared_ptr管理数组【内存】
C++怎么解析XML C++使用TinyXML库快速入门【实战】
TinyXML-1 已停止维护,TinyXML-2 是官方推荐的继任者,接口更现代、内存管理更安全、支持 UTF-8 原生解析。用 TinyXML-1 容易在中文路径或含 emoji 的 XML 中崩溃,而 TinyXML-2 默认按字节流处理,不强行转码,反而更稳。
C++怎么使用委托_C++函数对象与回调【灵活】
它不是万能胶,但比裸函数指针灵活得多。std::function 的模板参数决定了它能绑定什么签名的可调用对象。比如 std::function<void></void> 只接受能以一个 int 参数调用、返回 void 的东西。
C++怎么实现矩阵快速幂_C++线性递推优化【数学】
普通整数快速幂是用二进制拆分指数,每次平方底数、按位累乘;矩阵快速幂完全照搬这个逻辑,只是把 int 乘法换成矩阵乘法。关键不是“怎么造轮子”,而是“怎么让矩阵乘法能套进快速幂框架里”。
C++ int占多少字节 C++ 不同系统int长度说明【科普】
绝大多数现代 C++ 环境下,int 是 4 字节 —— 但这个“绝大多数”不等于“全部”,更不等于“理所当然”。它取决于编译器实现,而非 CPU 是 32 位还是 64 位。比如在 Linux x86_64(GCC)和 Windows x64(MSVC)上,sizeof(int) 都返回 4;但某些嵌入式平台(如 AVR、MSP430)或老式 16 位系统里,它可能是 2 字节。
C++怎么使用std::bind_C++函数绑定与占位符【适配】
占位符不是变量名,是 std::placeholders::_1 的别名,必须显式引入命名空间或用 using 声明。没写这句,编译直接报 ‘_1’ was not declared in this scope。
C++中如何通过std::assume_aligned告知编译器内存对齐信息?(SIMD优化)
std::assume_aligned 不是让编译器“对齐内存”,而是告诉它“这块指针指向的内存,**已知**按指定字节数对齐”。它本身不分配、不移动、不校验——只是个提示。编译器信了,才可能生成 movaps、vaddps 这类要求 16/32/64 字节对齐的 SIMD 指令;不信或没用对,就退回 movups 等非对齐版本,性能掉一截。
C++怎么复制文件 C++中std::copy文件流操作【总结】
它只能逐字节搬运数据,但不会自动创建目标文件、不处理二进制/文本模式差异、也不保证原子性或错误恢复。很多人一上来就写 std::copy(ifs, ofs),结果目标文件为空、乱码,或者程序崩溃。
C++如何实现自定义分配器优化STL容器性能?(内存局部性优化)
STL 容器(如 std::vector、std::list)默认用 std::allocator,它底层调用 ::operator new,每次分配都是独立的堆块。这些块在物理内存上大概率不连续,尤其在频繁增删后,容器元素或节点会散落在不同页框里——CPU 缓存预取失效,cache line 命中率骤降。
C++怎么使用折叠表达式_C++C++17变参展开【模板】
外面直接写 (args + …) 会编译失败,因为折叠表达式本质是模板参数包展开的语法糖,没有参数包上下文就无从展开。常见错误是试图在普通函数里硬套,结果报错 error: parameter pack ‘args’ was not expanded。