gpt4 book ai didi

c++ - 在 map 中使用字符串 vector

转载 作者:行者123 更新时间:2023-11-30 01:54:11 25 4
gpt4 key购买 nike

我有一个带有字符串键的映射,第二个属性应该是 vector 。

声明:

map <string, vector<string> > Subjects;

然后当我想用它来增加值(value)时。

Subjects[s] = new vector<string>;
Subjects[s].push_back(n);

s 和 n 是字符串。我只在第一行出错。它说error: no match for ‘operator=’ (operand types are ‘std::map<std::basic_string<char>, std::vector<std::basic_string<char> > >::mapped_type {aka std::vector<std::basic_string<char> >}’ and ‘std::vector<std::basic_string<char> >*’) .我试图将 vector 指针提供给 map ,但没有帮助。

最佳答案

Subjects 类型的值不是指针,您不能为其分配 new

如果n是字符串类型,就调用:

map <string, vector<string> > Subjects;

std::string n("hello");

Subjects[s].push_back(n);

编辑:

要从 map 中打印此值,您需要在 map 中找到元素,然后迭代 vector 。

auto it = Subjects.find(s);

if (it != Subjects.end())
{
auto& vIt = it->second;

for (auto elem : vIt)
{
cout << elem << endl;
}
}

关于c++ - 在 map 中使用字符串 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22295674/

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