C++
文章平均质量分 81
Duran.L
一个仍然在一线奋斗的程序猿
展开
-
C++ std::conditional的简明指南
C++ 11标准引入了,这是一个非常有用的类型转换模板,它允许我们在编译时根据条件选择不同的类型。这个模板类通常用于条件类型推断,可以帮助我们根据条件在编译时决定使用哪种类型。在本篇文章中,我们将深入了解的用法,并提供一些相关的例子来帮助理解。原创 2023-08-07 18:16:59 · 484 阅读 · 2 评论 -
C++ std::distance的简明指南
在C++标准库中,是一个非常有用的函数,可用于计算两个迭代器之间的距离。本文介绍了函数的基本用法和示例,以及一些注意事项。原创 2023-06-22 16:08:25 · 4264 阅读 · 0 评论 -
Qt/C++ Qt状态机框架(QStateMachine)的简明指南
Qt状态机框架提供了创建和执行状态图的类。概念和符号基于Harel的状态图,这也是UML状态图的基础。状态机执行的语义基于状态图XML (SCXML)。原创 2023-03-25 22:05:19 · 3151 阅读 · 2 评论 -
C++ std::result_of/std::invoke_result的简明指南
在C++中,有时我们需要获取函数或可调用对象的返回值类型,以便进行后续的操作,在泛型编程中尤其常用。在早期的C++版本中,我们需要手动推导函数返回值类型,这个过程非常复杂,也容易出错。为了解决这个问题,C++11引入了和(C++14),这两个模板可以方便地获取函数或可调用对象的返回值类型。而在C++17中,废弃了而引入了更好用的和。下面则先介绍再介绍。综上所述,和是两个非常有用的工具,可以方便地获取函数、成员函数和可调用对象的返回值类型。它们可以避免手动推导函数返回值类型的复杂过程,减少错误和代码量。原创 2023-04-20 23:24:48 · 3812 阅读 · 3 评论 -
Qt/C++ QVariant内容的零拷贝访问(获取与修改)
本文介绍了一种直接访问QVariant内部数据的方法,可以节省不必要的拷贝,提升程序的性能。对于读改写操作,则需要谨慎使用。原创 2023-06-17 16:19:01 · 658 阅读 · 0 评论 -
Qt/C++ 如何删除QListWidget的指定项
本文简单介绍了一种如何在QListWidget删除匹配指定字符串的项的方法。原创 2023-04-19 15:21:53 · 3058 阅读 · 0 评论 -
C++ std::enable_if的简明指南
std::enable_if是在 C++20 的概念之前利用SFINAE(Substitution Failure Is Not An Error)的便捷方式,特别是用于根据类型特征有条件地从候选集中删除函数,允许基于这些不同类型特征的单独函数重载或特化。本文通过例子介绍了其用法。原创 2023-03-30 16:08:23 · 1756 阅读 · 2 评论 -
Qt/C++ 借助QVariant实现可存储通用类型的容器
有一种场景的需求如下:1. 需要一个能够同时存储多种数据类型的容器;2. 该容器需要提供拷贝的功能;3. 该容器需要支持序列化与反序列化。我们姑且将满足以上需求的容器称为可存储通用类型的容器。本文假设项目中使用了Qt库,在此基础上,为实现这种容器提供了一种可行的思路,并给出实现这种容器的要点。原创 2022-12-04 23:22:52 · 1153 阅读 · 0 评论 -
Qt/C++ QDataStream序列化和反序列化64-bit整型的问题
讨论本人在实际开发中遇到的一个64-bit整型数序列化和反序列化的问题。由于本人参与的项目是需要支持Windows和Linux两个操作系统,本人先在Windows完成了开发,然后另一个同事在Linux上进行跨平台验证时发现了编译错误。原创 2022-11-16 11:00:42 · 867 阅读 · 0 评论 -
C++ STL 移动一个vector的元素到另一个vector
有的时候,我们需要提取某个现有的vector中的元素到另一个vector中,或者对多维的vector进行纬度的转换。在这种场景下,往往原始的vector中的数据可能并不需要了,为了节省内存空间,我们可以使用STL的移动语义。实现元素移动的常见方法有3种。通过例子的形式说明.原创 2022-11-15 17:46:50 · 5409 阅读 · 0 评论