gpt4 book ai didi

c++ - 我可以将一个值放入存储在 C++ 映射中的 vector 中吗?

转载 作者:行者123 更新时间:2023-12-02 10:33:03 29 4
gpt4 key购买 nike

我想知道是否可以将一个值放入存储在 map 中的 vector 中。

目前我这样做......

std::map<std::string, std::vector<std::string>> my_collection;
my_collection["Key"].push_back("MyValue");

我在想我可以做以下事情,C++ 会足够聪明,可以意识到它应该将它添加到 vector 中......但我得到一个内存编译错误。
my_collection.emplace("Key", "MyValue");

最佳答案

您可以创建一个 vector ,将其置入其中,然后移动该 vector 。这样您的对象就不会被复制或移动:

std::map<std::string, std::vector<std::string>> my_collection;
std::vector<std::string> temp;
temp.emplace_back("MyValue");
my_collection["Key"] = std::move(temp);

或者,您在 map 中创建 vector 并处理引用:
std::map<std::string, std::vector<std::string>> my_collection;
auto &keyVec = my_collection["Key"];
keyVec.emplace_back("MyValue");

方便地,这归结为:
std::map<std::string, std::vector<std::string>> my_collection;
my_collection["Key"].emplace_back("MyValue");

关于c++ - 我可以将一个值放入存储在 C++ 映射中的 vector 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61552338/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com