在C+中插入地图+; map散列; 插入(对(a,b))//错误来临 当我在C++中使用上面的语句时,A和B是字符串时,会遇到什么问题? 如何在这种类型的关联容器(即一个容器包含多个容器)中插入

在C+中插入地图+; map散列; 插入(对(a,b))//错误来临 当我在C++中使用上面的语句时,A和B是字符串时,会遇到什么问题? 如何在这种类型的关联容器(即一个容器包含多个容器)中插入,c++,maps,C++,Maps,多个thanx提前您试图在需要字符串向量的地方使用字符串。您需要将b插入向量,然后将(a,您的_向量)插入地图 或者,使用multimap以您可能会发现更易于使用的方式获得相同的基本效果。这将允许您的插入(对(a,b)) 也可以考虑使用 STD::MaMaGION < /COD>,而不是直接实例化 STD::配对< /代码>。它将推断参数的类型,因此您无需显式填写它们。只需遵循定义即可: map<string ,vector<string> > hashes; hash

多个thanx提前

您试图在需要字符串向量的地方使用字符串。您需要将
b
插入向量,然后将(a,您的_向量)插入地图

或者,使用
multimap
以您可能会发现更易于使用的方式获得相同的基本效果。这将允许您的
插入(对(a,b))


也可以考虑使用<代码> STD::MaMaGION < /COD>,而不是直接实例化<代码> STD::配对< /代码>。它将推断参数的类型,因此您无需显式填写它们。

只需遵循定义即可:

map<string ,vector<string> > hashes;

hashes.insert(pair<string,vector<string> > (a,b ));  //error coming
向量v; v、 向后推(“mystring”); insert(std::make_pair(“key”,v)); 注意,
make_pair
的第二个参数是一个
向量。这将永远不会失败。如果第二个参数是字符串,它将失败。

您可能需要

vector<string> v;
v.push_back("mystring");

hashes.insert(std::make_pair("key", v));
如果你想把b加到当前向量上。如果要替换它,请使用

hashes[a].push_back(b)
hashes[a].assign(1, b)