gpt4 book ai didi

c++ - 有没有一种方法可以在一行中填写 vector map

转载 作者:行者123 更新时间:2023-12-02 09:53:03 24 4
gpt4 key购买 nike

我正在填写 vector map ,我想知道是否可以在一行中完成此操作,而不是创建一个临时变量。我正在这样做:

map<string, vector<AnEnum> > myMap;
AnEnum tempEnum;

vector<AnEnum> tempList; tempList.push_back(tempEnum);
myMap["key"] = tempList;
我试图做到这一点
myMap["key"] = vector<AnEnum>(tempEnum);
但是视觉把它变成红色。我找不到在C++中做到这一点的好方法。我知道 new,但是那将为我创建一个指针。这并不关键,但是我的C++好奇心:)
提前致谢。

最佳答案

使用brace-initialisation(自C + 11起),您可以执行以下操作:

myMap["key"] = { AnEnum{} };
它将隐式创建一个包含1个 AnEnum元素的 vector 作为 "key"键。如果需要,可以通过用逗号分隔更多元素(例如 { AnEnum{}, AnEnum{} })来拥有更多元素。

如果需要,还可以使用大括号初始化一次创建整个 map :
std::map<std::string, std::vector<AnEnum>> mymap = {
{ "key1", { AnEnum{} } },
{ "key2", { AnEnum{} } }
};

关于c++ - 有没有一种方法可以在一行中填写 vector map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62737935/

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