遇到这样一个问题,往 Protobuffer 的 Repeated
字段添加新的内容,只能添加一个项进去。
topic->clear_doc_list();
UserDocContent* add_doc = topic->add_doc_list();
for (auto doc: doc_list) {
add_doc->CopyFrom(doc);
}
我以为 add_doc
这个指针在每次循环后会自动往后移动一个 doc_list
的长度来写另一个 doc。应该这样写:
topic->clear_doc_list();
for (auto doc: doc_list) {
UserDocContent* add_doc = topic->add_doc_list();
add_doc->CopyFrom(doc);
}
每次循环 add_doc_list()
返回是不同的指针。