C :将向量插入地图
C++: Inserting a Vector in a Map
所以我已经创建了
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_type
是std::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>>
。
- 将一对插入地图并增加计数?
- 当我将其插入无序地图时,矢量的容量为 0
- 为什么不插入地图?
- 为什么emplace_hint比插入地图慢?
- 无法将智能指针插入地图
- 如何将元组插入地图?
- 在C++中访问和插入地图的地图(嵌套地图)
- 通过EMPLEPE()将对象指针插入地图中
- 将mpfr_t对象插入地图中的值
- 有效地将值插入地图.更好地增加或减少键
- C :将向量插入地图
- C - 插入地图或向量时的分割故障
- 当我尝试将一对插入地图时,Qt程序seg出错
- C++ 将字符串插入地图时出现编译错误
- 将unique_ptr插入地图,指针被销毁
- 为什么我在插入地图时遇到 seg 错误
- 插入地图时出现分割错误
- 当我插入地图时,会出现Valgrind错误
- 将项目插入地图,其中还有 2 张地图
- 如何将数据插入地图<字符串,设置<string>> C++?