C++primer中文第5版 p358:
原文:如果it是由inserter生成的迭代器,则下面这样的赋值语句
*it = val;
其效果与下面代码一样
it = c.insert(it, val); //it指向新加入的元素
++it; // 递增it使它指向原来的元素
#include <iostream>
#include <iterator>
#include <list>
using namespace std;
int main() {
list<int> c = {1,2,3,4,5};
auto it = inserter(c,c.begin());
it = c.insert(it,0);
return 0;
}
这里编译器报了2个错:
(1)error: no matching member function for call to 'insert'
(2)No viable overloaded '='
推测inserter不能作为insert的参数,并且inserter的右值不能是一个iter