STL之--插入迭代器(back_inserter,inserter,front_inserter的区别

0人阅读 评论(0) 收藏 举报
分类:

除了普通迭代器,C++标准模板库还定义了几种特殊的迭代器,分别是插入迭代器、流迭代器、反向迭代器和移动迭代器,定义在头文件中,下面主要介绍三种插入迭代器(back_inserter,inserter,front_inserter)的区别。
首先,什么是插入迭代器?插入迭代器是指被绑定在一个容器上,可用来向容器插入元素的迭代器。
back_inserter:创建一个使用push_back的迭代器
inserter:此函数接受第二个参数,这个参数必须是一个指向给定容器的迭代器。元素将被插入到给定迭代器所表示的元素之前。
front_inserter:创建一个使用push_front的迭代器(元素总是插入到容器第一个元素之前)
由于list容器类型是双向链表,支持push_front和push_back操作,因此选择list类型来试验这三个迭代器。

list<int> lst = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
list<int> lst2 ={10}, lst3={10},lst4={10};
copy(lst.cbegin(), lst.cend(), back_inserter(lst2));
//lst2包含10,1,2,3,4,5,6,7,8,9
copy(lst.cbegin(), lst.cend(), inserter(lst3, lst3.begin()));
//lst3包含1,2,3,4,5,6,7,8,9,10
copy(lst.cbegin(), lst.cend(), front_inserter(lst4));
//lst4包含9,8,7,6,5,4,3,2,1,10

转自:https://blog.csdn.net/github_35681219/article/details/52564780

查看评论

STL之--插入迭代器(back_inserter,inserter,front_inserter的区别)

除了普通迭代器,C++标准模板库还定义了几种特殊的迭代器,分别是插入迭代器、流迭代器、反向迭代器和移动迭代器,定义在头文件中,下面主要介绍三种插入迭代器(back_inserter,inserter,...
  • github_35681219
  • github_35681219
  • 2016-09-17 19:57:54
  • 1700

c++迭代器详解(一):back_inserter, front_inserter,inserter

1.stl迭代器之配接器( Iterator Adapters) 迭代器(Iterators)是一个纯抽象的概念:任何东西,只要其行为类似迭代器,它就是一个迭代器.也就是说,只有具备有迭代器的四种基...
  • tianxiaolu1175
  • tianxiaolu1175
  • 2015-09-13 10:14:23
  • 2839

浅析inserter和front_inserter区别

在c++primer第四版,中文版P348页中,大家应该都会对inserter和front_inserter这两个函数的用法有点疑问吧,经过我的一番查证,测试和思考,总结出一点自己的想法,如有不当之处...
  • zhaowenchaofang
  • zhaowenchaofang
  • 2013-04-27 14:00:12
  • 1559

插入迭代器 back_inserter、front_inserter、inserter

编写程序使用 replace_copy 将一个容器中的序列复制给另一个容器,并将前一个序列中给定的值替换为指定的新值。分别使用 inserter、back_inserter 和 front_inser...
  • jdx888
  • jdx888
  • 2016-09-01 16:06:43
  • 224

back_inserter & front_inserter & inserter的用法

这几种iterator一般用于copy类型的函数,如sort_copy, copy, unique_copy,因为copy系列的函数不检查dest参数的有效性,即是否已经分配了内存 #include ...
  • hongjunbj
  • hongjunbj
  • 2013-11-22 17:05:58
  • 1340

inserter、back_inserter、front_inserter

分别返回三种类型的iterator:insert_iterator,back_insert_iterator,front_insert_iterator。这三种iterator被设计成允许不同的算法重...
  • markman101
  • markman101
  • 2014-07-04 10:52:58
  • 518

std::copy() & std::back_inserter()

std::copytemplate OutputIterator copy (InputIterator first, InputIterator last, OutputIterator res...
  • sUb_569
  • sUb_569
  • 2016-11-27 13:00:15
  • 542

error C3861: back_inserter : 找不到标识符(+补充新问题)

http://blog.csdn.net/swazer_z/article/details/7389455 isual Studio 2010中的VC++对C++0x提供了很多支持,很多标准...
  • taotaoah
  • taotaoah
  • 2016-08-16 21:45:31
  • 816

std::copy()和std::back_inserter()用法

#include "stdafx.h" #include #include //包含了std::back_inserter的定义class A { public: A() ...
  • analogous_love
  • analogous_love
  • 2016-04-22 11:58:45
  • 6527

OpenCV2.0在VS2010配置中出现问题的解决方法 VS2010 C++中出现常见问题:back_inserter

OpenCV2.0在VS2010中的安装可以参考OpenCV中文网站http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%...
  • xl890727
  • xl890727
  • 2012-08-01 15:08:00
  • 2409
    个人资料
    持之以恒
    等级:
    访问量: 4万+
    积分: 1553
    排名: 3万+
    xxxxx