插入迭代器与容器的成员函数插入器

Joe*_*res 3 c++ iterator stl inserter

我一直在学习STL在过去的两个星期,一直在处理很多的vector<T>,deque<T>list<T>.我一直在使用所有这些时间push_back(),push_front(),insert().目前,我已经介绍了"插入迭代器",其中包括:

  • back_insert_iterator,类似于push_back()并且确实要求容器具有push_back()工作功能
  • front_insert_iterator,类似于push_front()并要求容器具有push_front()
  • insert_iterator,类似的insert(),等等等等等等

所以我知道如何实现这一切.我的问题很简单,有什么区别?为什么要使用Insert Iterators呢?

Stu*_*etz 9

因为你可以将它们传递给算法,例如

std::copy(v1.begin(), v1.end(), std::back_inserter(v2));
Run Code Online (Sandbox Code Playgroud)

  • 最好先澄清一下,是的:)最重要的是`back_insert_iterator`是"只是"一个在其赋值运算符中调用`push_back`的输出迭代器(例如参见http://www.cplusplus.com/reference/) STD /迭代器/ back_insert_iterator /).如果你有兴趣,我似乎记得Josuttis的书"The C++ Standard Library",它对所有这些都有更详细的解释. (2认同)