在 C++ 中,在地图中插入一个向量

Posted

技术标签:

【中文标题】在 C++ 中,在地图中插入一个向量【英文标题】:In c++, Insert a vector in a map 【发布时间】:2015-06-07 03:47:12 【问题描述】:

在 c++ 中,我想在地图中插入一个向量。

map的key是一对string和int,value是一个vector。

我正在写下以下代码,但似乎矢量没有插入到地图中。

是不是代码的语法错了? 如果是这样,你能告诉我正确的吗?

map<pair<string, int>, vector<string> > my_map;
vector<string> v;
v.push_back("abcde");
my_map.insert(make_pair(make_pair("aaa",1),v));

【问题讨论】:

v_pre 定义在哪里? 对不起,这是错误的。我编辑了。 我无法重现这个。 Check it out 即使我无法重现该错误。检查它:ideone.com/XrZYxU “好像向量没有插入到地图中” 根据.....? 【参考方案1】:

您使用了 v_pre 而向量的名称为 v:

my_map.insert(make_pair(make_pair("aaa",1),v_pre));

正确的代码应该是:

my_map.insert(make_pair(make_pair("aaa",1),v));

【讨论】:

@szakira:你遇到了什么问题? 插入后map的值为空!! 使用函数my_map.empty()检查,你会得到错误的。 for (map, vector> ::const_iterator iter1 = my_map.begin(); iter1 != my_map.end(); iter1++) cout first.first first.second second[0] @everybody,对不起......这是我的错误。我的代码没有错。

以上是关于在 C++ 中,在地图中插入一个向量的主要内容,如果未能解决你的问题,请参考以下文章

为啥在达到容量后在向量中进行插入时,C++ 不处理迭代器?

如何在 C++ 中读取文件并将文件中的数据插入到类类型的向量中?

C ++:在向量中插入啥 - 指针或引用,向量何时复制它的元素?

在 C++ 地图中插入 vs emplace vs operator[]

C ++:如何用非零大小初始化地图中的向量

在插入向量 C++ 之前验证用户输入