C++
文章平均质量分 89
介绍C++
IT_Beijing_BIT
IT老兵
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用Google Protobuf序列化(serialize)结构数据
Google Protobuf是一种高效、跨平台的结构化数据序列化机制,相比JSON/XML更节省空间和处理时间。其主要特征包括:紧凑二进制格式、语言/平台无关性、前后兼容性和强类型检查。使用步骤为:1) 定义.proto文件描述数据结构;2) 用protoc编译器生成目标语言代码。示例展示了包含嵌套消息和枚举类型的Person/Address消息定义,并说明如何编译生成C++代码。Protobuf通过字段编号优化编码效率,支持单数和重复字段,是构建分布式系统的理想工具。原创 2025-11-30 11:13:07 · 1046 阅读 · 0 评论 -
C++并行处理支持库 之三
互斥算法可防止多个线程同时访问共享资源。这可以防止数据竞争,并为线程之间的同步提供支持。原创 2024-12-31 03:17:28 · 1013 阅读 · 0 评论 -
C++并行处理支持库 之二
std::atomic模板的每个实例化和完全特化都定义了一个原子类型。如果一个线程写入原子对象,而另一个线程从中读取,则行为是良定义的。此外,对原子对象的访问可以建立线程间同步,并按照 std::memory_order 指定的顺序,对非原子内存访问进行排序。原子操作是为细粒度操作提供的,允许无锁并发编程。每个原子操作对于涉及同一对象的任何其他原子操作都是不可分割的。std::atomic 既不可复制,也不可移动。下列代码说明几个atomicAPIs如何使用。原子对象不存在数据竞争。原创 2024-12-19 10:57:24 · 518 阅读 · 0 评论 -
C++并行处理支持库 之一
类线程代表单个执行线程。线程允许多个函数同时执行。线程在构造关联的线程对象后立即开始执行(等待任何操作系统调度延迟),从作为构造函数参数提供的顶级函数开始。顶级函数的返回值将被忽略,如果它通过抛出异常而终止,则调用 std::terminate。顶级函数可以通过 std::promise 或通过修改共享变量(这可能需要同步,请参阅 std::mutex 和 std::atomic)向调用者传达其返回值或异常。原创 2024-12-19 10:56:51 · 543 阅读 · 0 评论 -
C++17的新特征
C++17的新特征结构化绑定绑定数组绑定一个tuple类型绑定数据成员if/switch 的初始化语句if语句初始化switch语句初始化inline变量constexpr if折叠表达式左结合二元运算符右结合二元运算符类模板的模板参数推导auto 说明非类型模板参数结构化绑定结构化绑定就是将指定的名称和初始化器的子对象或元素绑定。与引用一样,结构化绑定是现有对象的别名。与引用不同的是,结构化绑定不必是引用类型。下面展示一些 内联代码片。attr(optional) cv-auto ref-qua原创 2022-03-19 20:32:11 · 1443 阅读 · 0 评论 -
C++模板参数推导
模板参数推导原创 2022-01-15 14:12:38 · 1516 阅读 · 0 评论 -
进程间通讯技术之一 共享存储器
共享文件文件共享例子。#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#define FileName "data.dat"#define DataString "Now is the winter of our discontent\nMade glorious summer by this原创 2021-08-18 09:44:59 · 915 阅读 · 0 评论 -
C++中的继承public, protected和private
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-06-08 22:57:30 · 1167 阅读 · 1 评论 -
程序设计模式之二
程序设计模式之二中介模式观察者模式中介模式观察者模式观察者模式是一种软件设计模式,在这个模式中,一个对象(称为主体)维护一组依赖项,这些依赖项也被称为观察者,通常,通过调用它们的方法之一来自动通知它们任何状态更改。它主要用于在“事件驱动”软件中,实现分布式事件处理系统。在这些系统中,主体通常被称为“事件流”或“事件流源”,而观察者被称为“事件接收器”。这种模式非常适合任何进程,在启动时CPU不知道数据输入何时到达,它们是“随机”到达,HTTP 请求、GPIO 数据、来自键盘/鼠标的用户输入都属于这原创 2021-05-30 04:52:26 · 268 阅读 · 0 评论 -
C++标准库中的算法与应用之一
C++标准库中的算法与应用非修改序列操作all_of/any_of/none_offor_eachcount/count_iffor_each三级目录非修改序列操作all_of/any_of/none_offor_each按顺序将给定的函数对象f应用于解引用范围为[first,last)的每个迭代器的结果。将给定的函数对象f应用于解引用[first,last)范围内的每个迭代器的结果(不一定按顺序)。该算法是根据策略执行的。除非std :: is_execution_policy_v <s原创 2021-05-24 10:43:24 · 1735 阅读 · 2 评论 -
程序设计模式
程序设计模型连接池和线程池C ++线程池Singleton抽象工厂工厂模式(Factory Method)连接池和线程池在程序设计中,线程池是一种软件设计模式,用于实现计算机程序中的执行并发。线程池通常也称为复制的工作程序,或工作人员工作组模型,维护着多个线程,等待任务分配给监督程序并发执行。通过维护线程池,该模型可提高性能并避免由于频繁创建和销毁短命任务的线程而导致执行延迟。可用线程的数量已调整为程序可用的计算资源,例如执行完成后的并行任务队列。线程池的大小是为执行任务而保留的线程数。它通常是应用程原创 2021-05-23 06:02:18 · 766 阅读 · 3 评论 -
如何使用C++虚函数与抽象类/接口
虚函数原创 2021-05-07 22:51:05 · 735 阅读 · 0 评论 -
C ++ 新功能介绍
C ++ 11新功能最新的线程库。Lambda表达式Automatic Type Deduction and decltype统一初始化语法Delete函数和Default函数nullptr委托构造器右值引用线程库在本文中,我将解释语言的最大变化以及它们为何如此重要。如您所见,线程库并不是唯一的更改。新标准以数十年的专业知识为基础,并使C ++更加重要。首先,让我们看一下一些著名的C ++ 11核心语言功能。Lambda表达式Lambda表达式使您可以在调用位置本地定义函数,从原创 2021-04-12 00:55:38 · 332 阅读 · 0 评论 -
C++类型转换
C ++是一种强类型的语言。许多转换,特别是那些暗示对值的不同解释的转换,都需要显式转换,在C ++中称为类型转换。通用类型转换存在两种主要语法:函数形式和像c一样的形式:double x = 10.3;int y;y = int (x); // 函数形式y = (int) x; // 像c一样的形式...原创 2021-04-04 11:20:18 · 324 阅读 · 2 评论
分享