我可以复制到多图吗

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它将被忽略。不过,界面要求您提供它。