Roy*_*ang 5 c++ protocol-buffers
protobuf 消息定义:使用 protobuf-3.6.1
syntax = "proto3";
message UserMessage {
message Int64List {
repeated int64 value = 1;
};
int64 uid = 1;
int64 gid = 2;
repeated int32 cat = 3;
map<string, int32> simple_map = 4;
map<string, Int64List> map_list = 5;
};
Run Code Online (Sandbox Code Playgroud)
cp代码:
UserMessage message;
auto m = message.mutable_simple_map();
(*m)["aaa"] = 2;
(*m)["bbb"] = 5;
{
std::cout << message.ShortDebugString() << std::endl;
auto a = message.simple_map();
for (auto& b : a) {
std::cout << "new " << b.first << ":" << b.second << std::endl;
}
}
(*m)["aaa"] = 20;
(*m)["bcb"] = 5;
{
std::cout << message.ShortDebugString() << std::endl;
auto a = message.simple_map();
for (auto& b : a) {
std::cout << "new " << b.first << ":" << b.second << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
simple_map { key: "aaa" value: 2 } simple_map { key: "bbb" value: 5 }
new bbb:5
new aaa:2
simple_map { key: "aaa" value: 2 } simple_map { key: "bbb" value: 5 }
new bbb:5
new aaa:20
new bcb:5
Run Code Online (Sandbox Code Playgroud)
我用地图结构声明了一个消息,并插入一些对并打印。然后我更新了其中一些并再次打印。结果对我来说很奇怪。为什么消息中的地图没有更新?但是独立打印是正确的吗?
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |