矢量项目未添加

时间:2013-12-25 00:22:24

标签: c++ sorting vector map

考虑以下源代码:

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时,向量的计数为零。我在这里有点不知所措,想知道我遗失了哪些明显的东西......

1 个答案:

答案 0 :(得分:2)

您修改了名为map的本地iniFile。这对其他地图*(_shared->sections)没有影响。也许你想让iniFile作为参考?