我可以复制到multimap中吗?
Can I Copy Into a multimap
给定istream_iterator<int>
和multimap<char, int> output
我想把所有的值复制到output
的'a'
键中。最好的处理方式是什么?
我曾尝试使用:
transform(
istream_iterator<int>(input),
istream_iterator<int>(),
begin(output),
[](const auto value){
return make_pair('a', value);
}
)
但是我得到错误:
error: assign read-only member
std::pair<const char, int>::first
我想这意味着我不能给begin(output)
写信。我唯一的选择是使用for_each
吗?
你很接近了,但是你应该使用std::inserter
:
transform(
istream_iterator<int>(input),
istream_iterator<int>(),
inserter(output, begin(output)),
[](const auto value){
return make_pair('a', value);
}
);
第二个参数是一个提示,但是对于multimap
,它将被忽略。但是,界面要求您提供它。
相关文章:
- 类型总是使用其大小存储在内存中吗
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 不必要的C++代码最终会出现在我完成的程序中吗?
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 打印没有铸件的枚举可以在C++中吗?
- 字符串变量,比如说"字符串str",可以直接复制到数组中吗?
- 我们可以将集合的值存储在变量中吗?就像我们可以将数组的值存储在变量中一样
- "x"的所有元素都存在于"y"(排序向量)中吗?
- 如果我从不调用这个方法,我可以把static_assert放在类方法中吗
- 你能把整个网页嵌入到c++源代码中吗
- 我可以使用istream_iterator将<char>一些 istream 内容复制到 std::string 中吗?
- 可以将模板化的 lambda 存储到 std::function 中吗?
- typedef 应该同时在类定义和类声明中吗?
- 我们可以动态地将操作插入到我们的函数中吗?
- 我可以将函数的输出参数存储到unique_ptr中吗?
- 可以将逗号和参数传递到C++宏中吗?
- 我可以停止 GCC 将标准库名称包含在全局命名空间中吗?
- 如果我不将预先编写的字符串保存到变量,它还在内存中吗?
- 我可以复制到multimap中吗?
- 我可以把multimap迭代逻辑放到另一个函数中吗?