首页 > 编程语言 >C++数据结构和pb数据结构的转换

C++数据结构和pb数据结构的转换

时间:2024-04-14 20:33:41浏览次数:20  
标签:map C++ pb ext mutable message 数据结构

1.C++ to pb

1.1 map嵌套对象结构 

//pb数据结构
message Inner {
    repeated string codes = 1;
    map<string, string> ext = 2;
};

message Outer {
    map<int32, Inner> uint2Inner = 1;
    map<string, string> ext = 2;
};

赋值代码 :

Outer req;
req.mutable_ext()->insert({"keyA", "valueA"});

// uint2Inner
auto uint2inner    = req.mutable_uint2Inner();// 复杂的map成员添加元素
uint32_t a=5;
auto inner = (*uint2inner)[a];// map复杂对象添加成员
for (const auto& code : codes) {
    inner.add_codes(code); // repeated类型循环添加成员
}
inner.mutable_ext()->insert({"lat", "123"}); //map简单类型的直接mutable&insert就行

 

1.2 嵌套map

// pb类型
message InnerStrMap {
  map<string, string> value = 1;
};
message PullLiveRoomListReq{
  map<string, string> ext = 1;
  map<string, InnerStrMap> ext2= 2;
  repeated uint32 keys = 3;
};

赋值代码:

 

 

2.pb to C++

 

标签:map,C++,pb,ext,mutable,message,数据结构
From: https://www.cnblogs.com/BlueBlueSea/p/18134638

相关文章

  • 第十五届蓝桥杯C++B组省赛总结
    A握手问题简单模拟,答案为:12045ptsB小球反弹数学,最重要的一点,不考虑反弹,一直让小球走,直到达到一个顶点,它就会反弹回去。所以问题就变成了扩展这些方块,直到满足小球的角度,让小球能达到另一个顶点。\(233333\times15a=343720\times17b\)解出来a和b就知道我们要延......
  • 【编程】C++ 常用容器以及一些应用案例
    介绍一些我常用的C++容器和使用方法,以及使用案例。blog1概述容器(Container)是一个存储其他对象集合的持有者对象。容器以类模板实现,对支持的元素类型有很大的灵活性。容器管理元素的存储并提供多个成员函数来访问和操作元素。两个主要类别:序列容器(Sequencecontainer):将元素维......
  • 【数学】向量点乘、叉乘的理论、应用及代码实现(C++)
    前言我总结了一下向量点乘,叉乘的概念,以及他们的应用及相关C++代码的实现。blog这类问题也是技术面试经常碰到的,一次研究透了会有收获。1向量向量具有大小和方向。共线向量:两个平行的向量为共线向量。1.1叉积CrossProduct$$\vec{a}\times\vec{b}=|\vec{a}||\vec{b}|\sin......
  • 数据结构:时间复杂度
    时间复杂度:表示算法执行所需的大致时间,记作O(N)。一、当执行次数为常量时记作O(1)。二、执行次数只保留最高阶项例:已知时间复杂度的函数式为F(N)=N^2+2N+10,N无穷大时,2N和10对函数影响的无穷小,可以忽略不计,因此只取N^2为执行次数记作O(N^2)。三、如果最高阶存在且不为1,则......
  • C++U6-12-阶段复习测评
          7、贝尔曼福特算法,是按顺序一轮一轮的松弛,如果有可以松弛的那就再来一轮;这个题第二轮就没有可以松弛的了,所以就没有第3轮了 8、这题是dijkstra算法,算法逻辑是:Dijkstra最短路径算法的步骤如下:初始化:创建一个距离数组 dist,用于存储起点到每个节点......
  • 01_C++基础
    C++基础1.什么是c++。​c++是c语言的升级版,在c的基础上增加了很多功能。是一种高级语言。2.什么是面向对象,什么又是面向过程。​c语言就是面向过程的,c++就是面向对象的。举例:a+b​直接计算a+b就是面向过程。​面向对象就是给a+b穿上了一层衣服。不......
  • 数据结构分类
    数据结构分类逻辑结构集合结构:只是属于一个集合线性结构:一对一的关系树形结构:图形结构:多对多物理结构顺序存储:把数据存放在地址连续的存储单元里,数据间的逻辑关系和物理关系是一致的例如数组链式存储:把数据元素存放在任意的存储单元里,这组存储单元可以......
  • c++ inline
    当在头文件中定义函数时,如果这个头文件被多个.cpp文件包含,那么每个包含该头文件的.cpp文件都会有一个该函数的副本。这在链接阶段会引起“多重定义”的错误,因为链接器找到多个相同符号的定义。使用inline关键字可以解决这个问题。当一个函数被声明为inline,编译器会尝试将......
  • 第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组题解
    试题A:握手问题本题总分:\(5\)分思路:组合计数,用为\(50\)个人握手的总方案数\(C^{2}_{50}\),减去七个人彼此没有握手握手的方案数\(C^{2}_{7}\)即为答案。A:握手问题#include<bits/stdc++.h>#defineintlonglong#definedblongdouble#defineall(f)f.begin()......
  • C与C++在函数和数据的比较
    C与C++在函数和数据的比较CData(struct)数据是一个类型->根据数据的类型创建出真正的数据Function函数就是用来处理数据的缺陷:语言没提供关键字.所以数据是全局的->各个函数都可以处理数据C++Data将数据和处理这些数据的函数包裹在一起,其他函数看不到其他函数处理......