Google Protocol Buffers(简称 Protobuf)是一种由 Google 开发的,用于定义结构化数据并在不同的系统或编程语言之间高效地传输和存储数据。它可以看作是一种更轻量且更高效的替代方案,类似于...
Protocol Buffers(protobuf)主要用于在不同系统、不同语言之间进行高效的数据序列化和反序列化。从而实现跨平台、跨语言的数据交互、网络通信、持久化存储等问题的工具。 在 C++ 中使用 Protobu...
Protocol Buffers 使用了一种中立、平台无关的语言来定义数据结构,使得不同编程语言、不同平台之间能够进行数据交互。Protocol Buffers 目前主要有 Proto2 和 Proto3 两个版本,Pr...
Protobuf 中的类型会对应到 CPP 中的对象,我们需要了解如何操作这些对象,以及如何序列化和反序列化这些对象。 1. 定义数据 创建 sample.proto 文件,定义数据如下: 接下来,使用下面命令生成 de...
虚函数(virtual function)指的是 C++ 中使用 virtual 关键字声明的函数。从表面看起来仅仅是一个函数的声明,但是其背后有着一套较为复杂的机制,通过这套机制能为 C++ 引入一些高级的动态特性。 ...
Protocol Buffer 会将对象序列化为二进制数据。在本文中,我们简单了解下它是如何对数据进行编码的,即:了解下底层的编码格式。当然并非必须的,日常使用 Protocol Buffer 不需要精通这些细节。不过,...
C++ Boost 库中的环形缓冲区(Circular Buffer)是一种数据结构,用于实现固定大小的队列,支持高效的插入和删除操作。它的主要特点是,当缓冲区满时,新的元素会覆盖最旧的元素,从而形成一个环形结构。 1....
在写程序时,我们经常会处理小数这种数据。这节课,将会给同学们讲解下,在计算机中小数存储的两种方式:浮点小数和定点小数。学习目标: 最后,我们来总结下这两种存储方式:
字节序(Byte Order)是指在多字节数据类型(如整数和浮点数)在内存中存储时,字节的排列顺序。常见的字节序有大端序(Big Endian)和小端序(Little Endian)。 例如,对于一个四字节的整数值 0x...
1. 基本使用 2. std::promise 3. std::future
std::invoke 是 C++17 引入的一个标准库函数,用于调用可调用对象,它一般用于模板中,能够以一致的方式处理不同类型的可调用对象。
在 C/C++中,随机数生成是一项常见的任务,通常用于模拟、游戏、密码学和统计等应用中。生成时一般会指定满足均匀分布、或者正态分布的随机数。下面,介绍下如何在 C 和 C++ 中生成满足均匀分布和正态分布的随机数。实现这...
1. 指针和引用区别 程序运行结果: 上面代码中,可以看到: 指针能够实现间接修改变量的值,引用也可以,并且引用的语法更简单; 指针可以初始化 NULL,指针必须初始化为与合法的空间关联; 指针可以随时修改指向,但是引用...