自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 待机弹球游戏

以前的电视机待机时,都有一个球在界面弹来弹去,碰到边界则改变颜色和方向。 界面与控制逻辑分离,更符合设计,职责分清 设计算法实现该效果,代码量极少 qt界面呈现最终效果, C++控制运动轨迹运算,及背景和边框颜色变化。 非常详细源码注释。

2023-08-14

c++设计模式-行为型模式-访问者模式

c++设计模式-行为型模式-访问者模式;qt工程;c++简单源码; 访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。

2022-06-26

c++设计模式-行为型模式-解释器模式

c++设计模式-行为型模式-解释器模式;qt工程;c++简单源码; 解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。

2022-06-26

c++设计模式-行为型模式-备忘录模式

c++设计模式-行为型模式-备忘录模式;qt工程;c++简单源码;备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。

2022-06-25

c++设计模式-行为型模式-迭代器模式

c++设计模式-行为型模式-迭代器模式;qt工程;c++简单源码;迭代器(Iterator)模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。

2022-06-25

c++设计模式-行为型模式-中介者模式

c++设计模式-行为型模式-中介者模式;qt工程;c++简单源码; 中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。

2022-06-24

c++设计模式-行为型模式-观察者模式

c++设计模式-行为型模式-观察者模式;qt工程;c++简单源码; 观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

2022-06-21

c++设计模式-行为型模式-状态模式

c++设计模式-行为型模式-状态模式;qt工程;c++简单源码; 状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。

2022-06-20

c++设计模式-行为型模式-责任链模式

c++设计模式-行为型模式-责任链模式;qt工程;c++简单源码; 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

2022-06-19

c++设计模式-行为型模式-命令模式

c++设计模式-行为型模式-命令模式;qt工程 ;c++简单源码; 命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。

2022-06-19

c++设计模式-行为型模式-策略模式

c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

2022-06-19

c++设计模式-行为型模式-模板方法模式

c++设计模式-行为型模式-模板方法模式;qt工程;c++简单源码; 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。

2022-06-19

c++设计模式-结构型模式-组合模式

c++设计模式-结构型模式-组合模式;qt工程;c++简单源码; 组合(Composite Pattern)模式的定义:有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。

2022-06-16

c++设计模式-结构型模式-享元模式

c++设计模式-结构型模式-享元模式;qt工程;c++简单源码; 享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。

2022-06-15

c++设计模式-结构型模式-外观模式

c++设计模式-结构型模式-外观模式;qt工程;c++简单源码; 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。

2022-06-13

c++设计模式-结构型模式-装饰器模式

c++设计模式-结构型模式-装饰器模式;QT工程;c++简单源码; 装饰器(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。

2022-06-12

c++设计模式-结构型模式-桥接模式

c++设计模式-结构型模式-桥接模式;qt工程,c++简单源码; 桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

2022-06-12

c++设计模式-结构型模式-适配器模式

c++设计模式-结构型模式-适配器模式,其他工程,c++源码。适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

2022-06-12

c++设计模式-结构型模式-代理模式

c++设计模式-结构型模式-代理模式,qt工程,c++源码,简单示例

2022-06-12

c++设计模式-创建型模式-建造者模式

c++设计模式-创建型模式-建造者模式-qt工程源码,c++实现

2022-06-04

c++设计模式-抽象工厂方法

c++设计模式-创建型-抽象工厂方法-最简单源码-qt工程

2022-06-04

c++设计模式-工厂方法模式

c++设计模式-创建型模式-工厂方法模式-最简单的源码-qt工程

2022-06-04

C++设计模式-原型模式

C++设计模式-创建型模式-原型模式;C++实现的关键 拷贝构造函数

2022-06-03

c++设计模式-单例模式

c++设计模式-创建型模式-单例模式源码,懒汉式 饿汉式源码,qt工程,单例模式线程安全问题,单例模式实现方式

2022-06-03

设计模式-简单工厂源码

C++设计模式-创建型模式-简单工厂模式源码

2022-06-03

widgets.rar

Qt自定义控件学习 /** * @brief 自定义拨动按钮控件,使用时将将Qwidget提升为CustomToggleButton即可 * 此类的样式:一个删除按钮,动态显示隐藏 * 应用场景:密码输入,搜索框输入框 * @author GGX * @date 2020-05-20 */

2020-12-02

QQclient.zip

C++、QT制作、QQ聊天工具、UI模仿;图标都是在百度上搜的,可能会跟QQUI有些差别,反正不喜欢的就自己换吧;去掉了自带边框,然后重写鼠标事件,实现窗口的移动;按下按钮可以切换界面,但是没有实现任何功能;

2020-05-03

client1.zip

QT聊天工具界面,只是简单的实现了界面,并没有涉及数据的操作,用信号槽机制切换界面,还用了关闭事件切换界面。

2019-12-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除