- 博客(992)
- 资源 (27)
- 收藏
- 关注
原创 C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 移动一定数量对象到未初始化内存区域 - (std::uninitialized_copy_n)
从始于 first 的范围移动 count 到始于 d_first 的未初始化内存区域,若此初始化抛出异常,则 [first, last) 中的某些对象留在合法但未指定的状态,并以未指定顺序销毁已构造的对象。
2024-08-24 08:30:00
196
原创 C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 移动一个范围的对象到未初始化的内存区域 - (std::uninitialized_move)
从范围 [first, last) 移动元素到始于 d_first 的未初始化内存区域,若此初始化抛出异常,则 [first, last) 中的某些对象留在合法但未指定的状态,并以未指定顺序销毁已构造的对象。
2024-08-23 08:30:00
284
原创 C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 复制一个对象到以起点和计数定义的未初始化内存区域 - (std::uninitialized_fill_n)
复制给定值 value 到始于 first 的未初始化内存区域的首 count 个元素,若初始化期间抛异常,则以未指定顺序销毁已构造的对象。
2024-08-22 09:29:48
229
原创 C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 复制一个对象到以范围定义的未初始化内存区域 - (std::uninitialized_fill)
复制给定的 value 到以 [first, last) 定义的未初始化内存区域若初始化期间抛异常,则以未指定顺序销毁已构造的对象。
2024-08-21 08:30:00
552
原创 C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 将指定数量的对象复制到未初始化的内存区域 - (std::uninitialized_copy_n)
从始于 first 的范围复制 count 个元素到始于 d_first 的未初始化内存区域若初始化中抛异常,则以未指定顺序销毁已构造的对象。
2024-08-20 08:30:00
397
原创 C++11标准模板(STL)- 动态内存管理 - 未初始化存储 - 将范围内的对象复制到未初始化的内存区域 - (std::uninitialized_copy)
复制来自范围 [first, last) 的元素到始于 d_first 的未初始化内存。同 (1) ,但按照 policy 执行。此重载仅若 std::is_execution_policy_v 为 true 才参与重载决议
2024-08-19 08:30:00
266
原创 C++11标准模板(STL)- 算法库 - 应用一个函数对象,然后以乱序规约(函数模板) -(std::transform_reduce)
等价于 transform_reduce(first1, last1, first2, init, std::plus(), std::multiplies()); ,默认的 std::inner_product 的等效并行版本
2024-08-18 16:36:24
643
原创 C++11标准模板(STL)- 算法库 - 类似 std::partial_sum,第 i 个和中包含第 i 个输入 -(std::inclusive_scan)
用 binary_op (或对于重载 (1-2) 则是 std::plus() )对范围 [first, last) 计算包含性前缀和运算,以 init 为初始值(若提供),并将结果写入从 d_first 开始的范围。“包含性”意味着第 i 个输入元素包含于第 i 个和。
2024-08-17 22:12:09
699
原创 C++11标准模板(STL)- 算法库 - 类似 std::partial_sum,第 i 个和中排除第 i 个输入 -(std::exclusive_scan)
用 binary_op (或对于重载 (1-2) 是 std::plus() )计算范围 [first, last) 上排除性前缀和,以 init 为初始值,并写入结果到从 d_first 开始的范围。“排除性”表示第 i 个输入元素不包含于第 i 个和。
2024-08-16 00:33:33
529
原创 C++11标准模板(STL)- 算法库 - 类似 std::accumulate,但不依序执行 -(std::reduce)
1) 同 reduce(first, last, typename std::iterator_traits::value_type{})3) 同 reduce(first, last, init, std::plus())5) 在 binary_op 上以初值 init 规约范围 [first; last) ,可能以未指定方式排序聚合。2,4,6) 同 (1,3,5) ,但按照 policy 执行。此重载仅若std::is_execution_policy_v
2024-08-15 23:55:02
944
原创 C++11标准模板(STL)- 算法库 - 最小/最大操作 - 在一对边界值间夹逼一个值(std::clamp)
1) 若 v 小于 lo ,则返回 lo ;若 v 大于 hi ,则返回 hi ;否则返回 v 。使用 operator< 比较值。2) 同 (1) ,不过使用 comp 比较值。若 lo 的值大于 hi 则行为未定义。
2024-08-14 08:30:00
521
原创 C++11标准模板(STL)- 算法库 - 修改序列的操作 - 从一个序列中随机选择 n 个元素(std::sample)
从序列 [first; last) 选择 n 个元素,使得每个样本拥有相等的出现概率,并写入这些被选择元素到输出迭代器 out 。用随机数生成器 g 生成随机数。若 n 大于序列中的元素数量,则选择 last-first 个元素。算法仅若 PopulationIterator 满足遗留向前迭代器 (LegacyForwardIterator) 要求才稳定(保持被选择元素 的顺序)。
2024-08-13 00:22:52
419
原创 C++11标准模板(STL)- 算法库 - 修改序列的操作 - 迁移范围中的元素(std::shift_left, std::shift_right)
将范围 [first, last) 中的元素迁移 n 个位置。1) 向范围开端迁移元素。若 n = last - first 则无效果。否则,对于每个 [0, last - first - n) 中的整数 i ,移动原于位置 first + n + i 的元素到位置 first + i 。以 i 从 0 开始递增的顺序进行移动。
2024-08-12 08:30:00
773
原创 c++标准模板(STL)算法库 - 应用一个函数对象到序列的前 n 个元素(std::for_each_n)
1) 按顺序应用给定的函数对象 f 到解引用范围 [first, first + n) 中每个迭代器的结果。2) 应用给定的函数对象 f 到解引用范围 [first, first + n) 中每个迭代器的结果(不必按顺序)。按照 policy 执行算法。
2024-08-11 22:37:25
572
原创 C++标准模板(STL)- 低层内存管理 - 解分配函数 (operator delete, operator delete[])
解分配先前由匹配的 operator new 所分配的存储。这些解分配函数为 delete 表达式与 new 表达式所调用,以在析构(或构造失败)拥有动态存储期的对象后解分配内存。它们亦可用常规函数调用语法调用。
2024-08-10 23:30:27
746
原创 C++标准模板(STL)- 类型支持 (类型关系,检查二个指定成员是否在二个指定类型中的公共起始序列中彼此对应,std::is_corresponding_member)
确定 mp 与 mq 是否指代 S1 与 S2 的公共起始序列中的对应成员。若 S1 或 S2 为不完整类型则程序非良构。
2024-08-09 08:30:00
264
原创 C++标准模板(STL)- 类型支持 (类型关系,检查一个类型的对象是否与该类型的指定子对象指针可互转换,std::is_pointer_interconvertible_with_class)
给定 S 类型的对象 s,确定 s.*mp 是否指代 s 的子对象且 s 与其子对象 s.*mp 指针可互转换。若 S 不是完整类型则程序非良构。 若 S 不是标准布局类型 (StandardLayoutType) ,或 M 不是对象类型,或 mp 等于 nullptr,则结果始终为 false。
2024-08-08 08:30:00
422
原创 C++标准模板(STL)- 类型支持 (类型关系,检查一个类型是否为另一类型的指针可互转换(起始)基类,std::is_pointer_interconvertible_base_of)
检查一个类型是否为另一类型的指针可互转换(起始)基类如果 Derived 无歧义地派生自 Base 且每个 Derived 对象均与其 Base 子对象指针可互转换,或它们均为相同的非联合类类型(两种情况下都忽略 cv 限定),那么提供的成员常量 value 等于 true。否则,value 等于 false。
2024-08-07 08:30:00
704
原创 C++标准模板(STL)- 类型支持 (类型关系,检查二个类型是否布局兼容,std::is_layout_compatible)
若 T 与 U 是布局兼容的类型,则提供等于 true 的成员常量 value 。否则 value 为 false 。每个类型均与其任何 cv 限定版本布局兼容,即使它不是对象类型。T 与 U 应均为完整类型、(可为 cv 限定的) void ,或未知边界数组。否则行为未定义。
2024-08-06 08:30:00
311
原创 C++标准模板(STL)- 类型支持 (检查一个类型的对象是否能与同类型或不同类型的对,std::is_swappable_with, std::is_swappable)
若表达式 swap(std::declval(), std::declval()) 及 swap(std::declval(), std::declval()) 在使用 using std::swap; (见 可交换 (Swappable) )后的不求值语境中均为良式,则提供等于 true 的成员常量 value 。否则 value 为 false 。
2024-08-05 08:30:00
557
原创 C++标准模板(STL)- 类型支持 (类型属性,检查类型是否为 final 类类型,std::is_final)
若 T 为 final 类(即以 final 指定符声明的类),则提供等于 true 的成员常量 value 。对于任何其他类型, value 为 false 。若 T 为类类型,则 T 应为完整类型;否则行为未定义。
2024-08-04 08:30:00
799
原创 C++标准模板(STL)- 类型支持 (类型属性,检查类型是否拥有强结构相等性,std::has_strong_structural_equality)
若 T 拥有强结构相等性,则提供等于 true 的成员常量 value 。对于任何其他类型 value 为 false 。
2024-08-03 19:00:34
418
原创 C++标准模板(STL)- 低层内存管理 - 分配函数(operator new, operator new[])
分配请求数量的字节。这些分配函数为 new 表达式所调用,以分配将被初始化的对象所在的内存。亦可用常规函数调用语法调用它们。
2024-08-02 23:14:52
1262
原创 C++标准模板(STL)- 类型支持 (类型属性,检查是否该类型对象的每一位都对其值有贡献,std::has_unique_object_representations)
若 T 为可平凡复制 (TriviallyCopyable) ,且若任意二个拥有相同值的 T 类型对象拥有相同的对象表示,则提供等于 true 的成员常量 value 。对于任何其他类型, value 为 false 。
2024-08-01 08:30:00
413
原创 C++标准模板(STL)- 类型支持 (杂项变换, 确定类型组的共用引用类型,std::common_reference)
确定类型 T... 的共用引用类型,即 T... 中所有类型能转换或绑定到的类型。若这种类型存在(如按照后述规则所确定),则成员 type 指名该类型。否则,无成员 type 。若 T... 中的任何类型为(可有 cv 限定的) void 以外的不完整类型,则行为未定义。
2024-07-31 08:30:00
796
原创 C++标准模板(STL)- 类型支持 (类型关系,检查类型能否以给定的实参类型调用,std::is_invocable)
1) 确定是否能以参数 ArgTypes... 调用 Fn 。2) 确定是否能以参数 ArgTypes... 调用 Fn 并生成可转换为 R 的结果。3) 确定是否能以参数 ArgTypes... 调用 Fn (同 (1) ),并已知这种调用不抛任何异常。4) 确定是否能以参数 ArgTypes... 调用 Fn 并生成可转换为 R 的结果(同 (2) ),并已知这种调用(包括转换)不抛任何异常。
2024-07-30 08:30:00
867
原创 C++标准模板(STL)-基本类型 - 字节类型 (std::byte)
std::byte 是一种独立类型,它实现指定于 C++ 语言定义中的字节的概念。同 char 与 unsigned char ,它能用于访问其他对象所占据的生内存(对象表示),但不同于这些类型,它不是字符类型且非算术类型。 byte 只是位的汇集,而且只对它定义逐位运算符。
2024-07-29 08:30:00
867
原创 C++标准模板(STL)- 类型支持 (类型属性,检查类型是否聚合类型,std::is_aggregate)
检查 T 是否为聚合类型。若 T 为聚合类型,则成员常量 value 等于 true ,否则为 false 。若 std::remove_all_extents_t 是异于(可以有 cv 限定的) void 的不完整类型,则行为未定义。
2024-07-28 08:30:00
299
原创 C++标准模板(STL)- 概念库 (C++20) - 指定能复制构造和移动构造一个类型的对象 - (std::copy_constructible)
概念 copy_constructible 若符合这些条件则得到满足: T 为左值引用类型,或若它是 move_constructible 对象类型,而能从(可为 const 的)该类型左值或 const 右值,在直接和复制初始化语境中以通常语义构造该类型对象(构造副本而不更改源)。
2024-07-27 08:30:00
510
原创 C++标准模板(STL)- 概念库 (C++20) - 指定能移动构造一个类型的对象 - (std::move_constructible)
概念 move_constructible 若符合这些条件则得到满足, T 为引用类型,或它是对象类型,并且能在直接和复制初始化语境中,以通常语义从该类型右值构造该类型对象。
2024-07-26 08:30:00
204
原创 C++标准模板(STL)- 概念库 (C++20) - 指定能默认构造一个类型的对象 - (std::default_constructible)
default_constructible 概念为问题为类型能否以无参数构造时的常见情况,提供简便方式。
2024-07-25 08:30:00
242
原创 C++标准模板(STL)- 概念库 (C++20) - 指定该类型的变量能从一组实参类型进行构造,或绑定到一组实参类型 - (std::constructible_from)
constructible_from 概念指定 T 类型变量能以给定的参数类型集 Args... 初始化。
2024-07-24 08:30:00
286
原创 C++标准模板(STL)- 概念库 (C++20) - 指定能销毁该类型的对象 - (std::destructible)
概念 destructible 指定能在实例生存期结尾安全销毁的所有类型(包含引用类型)的概念。
2024-07-23 08:30:00
262
原创 C++标准模板(STL)- 概念库 (C++20) - 指定类型为浮点类型 - (std::floating_point)
概念 floating_point 当且仅当 T 为浮点类型才得到满足。
2024-07-22 08:30:00
305
原创 C++标准模板(STL)- 概念库 (C++20) - 指定类型为无符号的整型类型 - (std::unsigned_integral)
概念 unsigned_integral 若且唯若 T 是整数类型且 std::is_signed_v 为 false 才得到满足。
2024-07-21 08:30:00
614
原创 C++标准模板(STL)- 概念库 (C++20) - 指定类型为有符号的整型类型 - (std::signed_integral)
概念 signed_integral 若且唯若 T 为整数类型且 std::is_signed_v 为 true 才得到满足。.
2024-07-20 22:28:19
331
原创 C++标准模板(STL)- 概念库 (C++20) - 指定类型为整型类型 - (std::integral)
概念 integral 若且唯若 T 为整数类型才得到满足。
2024-07-19 08:30:00
312
原创 C++标准模板(STL)- 概念库 (C++20) - 指定一个类型能隐式转换成另一类型 - (std::convertible_to)
概念 convertible_to 指定类型和值类别由 From 编码的表达式能隐式和显式转换成 To 类型,而二种转换形式等价。
2024-07-18 08:30:00
366
原创 C++标准模板(STL)- 概念库 (C++20) - 指定一个类型派生自另一类型 - (std::derived_from)
概念 derived_from 若且唯若忽略 cv 限定符后 Base 是类类型,且它为 Derived 或是 Derived 的公开无歧义基类才得到满足。注意当 Base 是 Derived 的私有或受保护基类时,此行为异于 std::is_base_of 。
2024-07-17 08:30:00
458
原创 C++标准模板(STL)- 概念库 (C++20) - 指定一个类型与另一类型相同 - (std::same_as)
概念 same_as 若且唯若 T 与 U 代表同一类型才得到满足。std::same_as 包含 std::same_as ,反之亦然。
2024-07-16 08:30:00
223
C++ Qt 待机弹球游戏
2023-08-14
c++设计模式-行为型模式-访问者模式
2022-06-26
c++设计模式-行为型模式-解释器模式
2022-06-26
c++设计模式-行为型模式-备忘录模式
2022-06-25
c++设计模式-行为型模式-迭代器模式
2022-06-25
c++设计模式-行为型模式-中介者模式
2022-06-24
c++设计模式-行为型模式-观察者模式
2022-06-21
c++设计模式-行为型模式-状态模式
2022-06-20
c++设计模式-行为型模式-责任链模式
2022-06-19
c++设计模式-行为型模式-命令模式
2022-06-19
c++设计模式-行为型模式-策略模式
2022-06-19
c++设计模式-行为型模式-模板方法模式
2022-06-19
c++设计模式-结构型模式-组合模式
2022-06-16
c++设计模式-结构型模式-享元模式
2022-06-15
c++设计模式-结构型模式-外观模式
2022-06-13
c++设计模式-结构型模式-装饰器模式
2022-06-12
c++设计模式-结构型模式-桥接模式
2022-06-12
c++设计模式-结构型模式-适配器模式
2022-06-12
widgets.rar
2020-12-02
QQclient.zip
2020-05-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人