在C++的地图中插入
Insertion in maps in C++
map<string ,vector<string> > hashes;
hashes.insert(pair<string,vector<string> > (a,b )); //error coming
当我在C++中使用上述语句时,会出现什么问题,其中 a 和 b 是字符串?在这种类型(即一个容器包含多个容器)的关联容器中如何进行插入?
提前感谢很多
你可能想要
hashes[a].push_back(b)
也就是说,如果您希望将 b 附加到当前向量。 如果您希望它替换它,请使用
hashes[a].assign(1, b)
您正在尝试使用需要字符串向量的字符串。您需要将b
插入到矢量中,然后将 (a, your_vector) 插入到地图中。
或者,使用multimap<string, string>
以您可能认为更易于使用的方式获得相同的基本效果。这将允许您insert(pair<...>(a, b))
.
还可以考虑使用 std::make_pair
,而不是直接实例化std::pair
。它将推断参数的类型,因此您无需明确填写它们。
只需遵循以下定义:
vector<string> v;
v.push_back("mystring");
hashes.insert(std::make_pair("key", v));
请注意,要make_pair
的第二个参数是vector<string>
。到时候这永远不会失败。如果第二个参数是字符串,它将失败。
相关文章:
- 将一对插入地图并增加计数?
- 当我将其插入无序地图时,矢量的容量为 0
- 为什么不插入地图?
- 为什么emplace_hint比插入地图慢?
- 无法将智能指针插入地图
- 如何将元组插入地图?
- 在C++中访问和插入地图的地图(嵌套地图)
- 通过EMPLEPE()将对象指针插入地图中
- 将mpfr_t对象插入地图中的值
- 有效地将值插入地图.更好地增加或减少键
- C :将向量插入地图
- C - 插入地图或向量时的分割故障
- 当我尝试将一对插入地图时,Qt程序seg出错
- C++ 将字符串插入地图时出现编译错误
- 将unique_ptr插入地图,指针被销毁
- 为什么我在插入地图时遇到 seg 错误
- 插入地图时出现分割错误
- 当我插入地图时,会出现Valgrind错误
- 将项目插入地图,其中还有 2 张地图
- 如何将数据插入地图<字符串,设置<string>> C++?