考虑以下源代码:
map<string,vector<SectionElement *>> _sections;
...
static SharedData *_shared;
...
static int iniHandler(void* user, const char* section, const char* name,
const char* value)
{
map<string,vector<SectionElement*>> iniFile = *(_shared->sections);
auto& iniSection = iniFile[ section];
auto sectionElement = new SectionElement();
sectionElement->name = name;
sectionElement->value = value;
iniSection.push_back( sectionElement);
return 1;
}
代码的问题在于,如果我向iniSection添加一个元素,它可以工作,但是从iniFile中检索的向量似乎与保存在地图中的向量不同。因此,每次调用函数iniHandler时,向量的计数为零。我在这里有点不知所措,想知道我遗失了哪些明显的东西......
答案 0 :(得分:2)
您修改了名为map
的本地iniFile
。这对其他地图*(_shared->sections)
没有影响。也许你想让iniFile
作为参考?