...VC\INCLUDE\iterator(93) : error C2039: “push_front”: 不是“std::vector<_Ty>”的成员
with[
_Ty=int
]
错误代码:
int ia[] = {1,5,3,3,4};
const int array_size = sizeof(ia)/sizeof(*ia);
list<int> ilist(ia,ia+array_size);
vector<int> temp;
copy(ilist.begin(),ilist.end(),
front_inserter(temp));//使用push_front插入,导致错误
解决办法: 迭代器与底层容器之间的操作实际上存在限制关系,也就是说并不是所有的容器都支持诸如push_front之类的操作。这里front_inserter将使用push_front方法来向vector插入元素,但是vector并不支持push_front操作。因此,解决的方法就是使用back_inserter 或者inserter函数返回的插入迭代器来进行操作。