
低层内存管理
文章平均质量分 73
new 表达式是创建拥有动态存储期对象或对象数组的仅有方式,即它们拥有不受制于创建所它们在的作用域的生存期。 new 表达式通过调用分配函数获得存储。 delete 表达式销毁最终导出对象或通过 new 表达式创造的数组,然后调用解分配函数。默认分配函数和默认解分配函数,及与之关联的函数、类型及对象
繁星璀璨G
单身,求对象
展开
-
C++11标准模板(STL)- 动态内存管理 - 释放未初始化存储 - (std::return_temporary_buffer)
解分配先前以 std::get_temporary_buffer 分配的存储。原创 2024-09-03 08:30:00 · 352 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 获得未初始化存储 - (std::get_temporary_buffer)
分配未初始化的相接存储,它应足以存储至多 count 个 T 类型的相邻对象。要求是非绑定的,且实现可以分配少于或多于存储 count 个相邻对象所需的内存。原创 2024-09-02 00:17:18 · 423 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 允许标准算法存储结果于未初始化内存的迭代器 - (std::raw_storage_iterator)
输出迭代器 std::raw_storage_iterator 使得标准算法能存储结果于未初始化内存。凡在算法写 T 类型对象到解引用后的迭代器时,对象被复制构造到该迭代器所指向的未初始化存储中的位置。模板形参 OutputIt 是任何满足遗留输出迭代器 (LegacyOutputIterator) 要求的类型,并拥有定义为返回对象的 operator* , operator& 对该对象返回 T* 类型值。通常,以类型 T* 为 OutputIt 。原创 2024-09-01 16:07:08 · 1198 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 销毁范围中一定数量的对象 - (std::destroy_n)
1) 销毁从 first 开始的范围中的 n 个对象,如同用for (; n > 0; (void) ++first, --n) std::destroy_at(std::addressof(*first));2) 同 (1) ,但按照 policy 执行。此重载不参与重载决议,除非 std::is_execution_policy_v 为 true 。原创 2024-08-31 23:15:04 · 711 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 销毁一个范围中的对象 - (std::destroy)
1) 销毁范围 [first, last) 中的对象,如同用for (; first != last; ++first) std::destroy_at(std::addressof(*first));2) 同 (1) ,但按照 policy 执行。此重载不参与重载决议,除非 std::is_execution_policy_v 为 true 。原创 2024-08-30 08:30:00 · 834 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 销毁在给定地址的对象 - (std::destroy_at)
调用 p 所指对象的析构函数,如同用 p->~T() 。原创 2024-08-29 08:30:00 · 316 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 在起始和计数所定义的未初始化内存区域以值初始化构造对象 -(std::uninitialized_value_construct_n)
1) 在始于 first 的未初始化存储中以值初始化构造 n 个 typename iterator_traits::value_type 类型的对象,如同用若初始化当中抛出异常,则以未指定顺序销毁已构造的对象。2) 同 (1) ,但按照 policy 执行。此重载仅若 std::is_execution_policy_v 为 true 才参与重载决议。原创 2024-08-28 08:30:00 · 628 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 在起始和计数所定义的未初始化内存区域用默认初始化构造对象 - (std::uninitialized_default_construct_n)
1) 在 first 起始的存储中以默认初始化构造 n 个 typename iterator_traits::value_type 类型对象,如同用原创 2024-08-26 08:30:00 · 328 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 在范围所定义的未初始化的内存区域以默认初始化构造对象 - (std::uninitialized_default_construct)
1) 以默认初始化在范围 [first, last) 所指代的未初始化存储上构造 typename iterator_traits::value_type 类型对象,如同用原创 2024-08-25 08:30:00 · 460 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 移动一定数量对象到未初始化内存区域 - (std::uninitialized_copy_n)
从始于 first 的范围移动 count 到始于 d_first 的未初始化内存区域,若此初始化抛出异常,则 [first, last) 中的某些对象留在合法但未指定的状态,并以未指定顺序销毁已构造的对象。原创 2024-08-24 08:30:00 · 326 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 移动一个范围的对象到未初始化的内存区域 - (std::uninitialized_move)
从范围 [first, last) 移动元素到始于 d_first 的未初始化内存区域,若此初始化抛出异常,则 [first, last) 中的某些对象留在合法但未指定的状态,并以未指定顺序销毁已构造的对象。原创 2024-08-23 08:30:00 · 386 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 复制一个对象到以起点和计数定义的未初始化内存区域 - (std::uninitialized_fill_n)
复制给定值 value 到始于 first 的未初始化内存区域的首 count 个元素,若初始化期间抛异常,则以未指定顺序销毁已构造的对象。原创 2024-08-22 09:29:48 · 322 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 复制一个对象到以范围定义的未初始化内存区域 - (std::uninitialized_fill)
复制给定的 value 到以 [first, last) 定义的未初始化内存区域若初始化期间抛异常,则以未指定顺序销毁已构造的对象。原创 2024-08-21 08:30:00 · 602 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 将指定数量的对象复制到未初始化的内存区域 - (std::uninitialized_copy_n)
从始于 first 的范围复制 count 个元素到始于 d_first 的未初始化内存区域若初始化中抛异常,则以未指定顺序销毁已构造的对象。原创 2024-08-20 08:30:00 · 456 阅读 · 0 评论 -
C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 将范围内的对象复制到未初始化的内存区域 - (std::uninitialized_copy)
复制来自范围 [first, last) 的元素到始于 d_first 的未初始化内存。同 (1) ,但按照 policy 执行。此重载仅若 std::is_execution_policy_v 为 true 才参与重载决议原创 2024-08-19 08:30:00 · 544 阅读 · 0 评论 -
C++标准模板(STL)- 低层内存管理 - 解分配函数 (operator delete, operator delete[])
解分配先前由匹配的 operator new 所分配的存储。这些解分配函数为 delete 表达式与 new 表达式所调用,以在析构(或构造失败)拥有动态存储期的对象后解分配内存。它们亦可用常规函数调用语法调用。原创 2024-08-10 23:30:27 · 861 阅读 · 0 评论 -
C++标准模板(STL)- 低层内存管理 - 分配函数(operator new, operator new[])
分配请求数量的字节。这些分配函数为 new 表达式所调用,以分配将被初始化的对象所在的内存。亦可用常规函数调用语法调用它们。原创 2024-08-02 23:14:52 · 1313 阅读 · 0 评论