我正在尝试连接back_inserter_iterator和cin,我知道我可以使用cin和back_inserter复制,但想知道为什么我不能执行下面的
list<string> name;
back_insert_iterator<list<string>> ins_it(name);
while (cin >> ins_it);
以下是我收到的错误消息:
错误:无法绑定'std :: istream {aka std :: basic_istream}' 左值'std :: basic_istream&amp;&amp;'
由于
答案 0 :(得分:3)
答案 1 :(得分:3)
规范的方法(如果有这样的事情):
list<string> name{
istream_iterator<string>{cin},
istream_iterator<string>{}};
或:
list<string> name;
copy(istream_iterator<string>{cin}, istream_iterator<string>{},
back_inserter(name));
答案 2 :(得分:0)
运算符&gt;&gt;()不是 insert 运算符,它是 extract 运算符。 后插入器对象需要插入,而不是提取。 总而言之,没有运算符&gt;&gt;(istream,inserter)。