C :将向量插入地图

C++: Inserting a Vector in a Map

本文关键字:插入 地图 向量      更新时间:2023-10-16

所以我已经创建了

 map<string, vector<int>> mylist;

,但是我在添加项目时遇到了麻烦。我尝试创建一个向量,然后在地图中插入字符串和向量(它说没有超载功能的实例与参数列表匹配)。这就是我在做的:

vector<int> variable_list(some_integer);
mylist.insert(string_variable, variable_list);

我应该如何将矢量添加到地图中?我可以在插入函数中创建向量吗?

另外,我将用一个int初始化矢量,但随后我想返回并稍后再添加更多。如何在地图中访问向量?

感谢您的帮助。

对于此类问题,我建议您查找一个很好的参考,例如cppreference.com。

如果您去那里并且查找std::map::insert,则会看到此签名的过载:std::pair<iterator,bool> insert( const value_type& value );,它告诉我们它期望某种称为value_type的东西。如果然后查看std::map,您会发现value_typestd::pair<const Key, T>的Typedef。

现在您可以使用std::make_pair创建适当的类型,例如:mylist.insert(std::make_pair<const string, vector<int>)


作为附带说明,我必须强烈建议您找到一本介绍书/某物,因为您的其余问题表明,您对不仅仅插入地图都感到困惑。
对于初学者,vector<int> variable_list(number)不会在其中构建使用number的向量,而是将构造number零的向量。

map::insert服用std::pair。您可以使用make_pair或写mylist[string_variable] = variable_list;

您需要调用mylist.insert(std::make_pair(string_variable, variable_list));。您正在寻找以value_type为参数的std :: map :: insert的版本,在您的情况下为 std::pair<std::string, std::vector<int>>