如何更新std :: unordered_map中的向量<std :: string,std :: vector <int =“”>&gt;没有复制?

时间:2017-10-07 11:48:31

标签: c++ vector c++14 unordered-map

如何扩展以下代码以收集所有entry.score,而不仅仅是保留最新代码?

我现在的代码是:

std::unordered_map<std::string, float> container;

int main() {
    // some code
    for (auto entry : entries)
        container[entry.name] = entry.score;
}

如何扩展它以保留所有entry.score同时避免复制?:

std::unordered_map<std::string, std::vector<float>> container;
//vectors need to be updated using .push_back(entry.score)

int main() {
    // some code
    for (auto entry : entries)
        container[entry.name] = ;  //missing connection
}

1 个答案:

答案 0 :(得分:3)

container[entry.name]返回std::vector<float>&std::vector公开了push_back,它将一个元素插入到向量中。

因此你可以这样做:

container[entry.name].push_back(entry);