我可以复制到多图吗
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: assignment of 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
它将被忽略。不过,界面要求您提供它。
给定 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: assignment of 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
它将被忽略。不过,界面要求您提供它。