想使用protobuf对本地用户数据进行存储,同时用于远程存档,一举两得;
本以为已添加的数据不能更改,发现有个mutable方法可以直接获取引用地址,特此记录备忘
auto kbv = _usr_data.mutable_kstring_vec();
auto nkb1 = _usr_data.add_kstring_vec();
nkb1->set_key("nkb_key_1");
nkb1->set_value("nkb_value_1_o");
auto nkb2 = _usr_data.add_kstring_vec();
nkb2->set_key("nkb_key_2");
nkb2->set_value("nkb_value_2");
for (int i = 0; i < kbv->size(); i++) {
auto kb = kbv->Mutable(i);
if (kb->key() == "nkb_key_2") {
kb->set_value("nkb_value_2_new");
}
}