`
huobengluantiao8
  • 浏览: 1038586 次
文章分类
社区版块
存档分类
最新评论

简单的程序诠释C++ STL算法系列之十六:iter_swap

 
阅读更多

上文中阐述了元素交换算法swap以及容器中swap成员函数的使用,尤其是通过vector成员函数的交换技巧实现容器内存的收缩,今天,我们要看到的是另一个变易算法,迭代器的交换算法iter_swap,顾名思义,该算法是通过迭代器来完成元素的交换。首先我们来看看函数的原型:

函数原型:


参数说明:

_Left,_Right指向要交换的两个迭代器

程序示例:

在泛型编程里面,iterator被称为“泛型指针”,因此我们可以通过iterator作为指针来交换两个数组的元素,为了展示swap和iter_swap的区别,在下面这个示例中,我们分别通过这两个算法来实现数组元素的简单交换。


上例中,迭代器是作为泛型指针的形式来实现数组元素的交换,现在我们通过iter_swap算法来实现同一种容器之间元素的交换以及不同容器之间的元算交换。


*******************************************************************************************************************************

C++经典书目索引及资源下载:http://blog.csdn.net/jerryjbiao/article/details/7358796

********************************************************************************************************************************


分享到:
评论

相关推荐

    C++ STL开发技术导引(第5章)

    第四篇 C++ STL算法技术 第21章 非变易算法 284 21.1 逐个容器元素for_each 284 21.2 查找容器元素find 285 21.3 条件查找容器元素find_if 286 21.4 邻近查找容器元素adjacent_find 287 21.5 范围查找...

    C++ STL 开发技术导引(第6章)

    第四篇 C++ STL算法技术 第21章 非变易算法 284 21.1 逐个容器元素for_each 284 21.2 查找容器元素find 285 21.3 条件查找容器元素find_if 286 21.4 邻近查找容器元素adjacent_find 287 21.5 范围查找...

    STL源码剖析.pdg

    6.1.5 stl算法的一般形式 292 6.2 算法的泛化过程 294 6.3 数值算法 [stl_numeric.h] 298 6.3.1 运用实例 298 6.3.2 accumulate 299 6.3.3 adjacent_difference 300 6.3.4 inner_product 301 6.3.5 partial_...

    C++ STL开发技术导引(第3章)

    第四篇 C++ STL算法技术 第21章 非变易算法 284 21.1 逐个容器元素for_each 284 21.2 查找容器元素find 285 21.3 条件查找容器元素find_if 286 21.4 邻近查找容器元素adjacent_find 287 21.5 范围查找...

    STL 源码剖析(侯捷先生译著)

    6.1.5 STL算法的一般形式 292 6.2 算法的泛化过程 294 6.3 数值算法 [stl_numeric.h] 298 6.3.1 运用实例 298 6.3.2 accumulate 299 6.3.3 adjacent_difference 300 6.3.4 inner_product 301 6.3.5 partial_...

    C++标准程序库STL的架构

    9 STL算法 85 9.1 算法头文件 85 9.2 算法概览 85 9.2.1 简介 85 9.2.2 算法分类 85 9.3 辅助函数 85 9.4 for_each()算法 86 9.5 非变动性算法 88 9.5.1 元素计数 88 9.5.2 最小值和最大值 88 9.5.3 搜寻元素 89 ...

    -C++参考大全(第四版) (2010 年度畅销榜

    第34章 STL算法 34.1 adjacent_find 34.2 binary_search 34.3 copy 34.4 copy_backward 34.5 count 34.6 count_if 34.7 equal 34.8 equal_range 34.9 flll和fill_n 34.10 find 34.11 find_end 34.12 find_first_of ...

    C++大学教程,一本适合初学者的入门教材(part1)

    20.5.7 swap、iter_swap和swap_ranges 20.5.8 copy—backward、 merge、 unique和reverse 20.5.9 inplace_merge、 unique—copy和reverse—copy 20.5.10 集合操作 20.5.11 1ower—bound、 upper—bound和...

    C++大学教程,一本适合初学者的入门教材(part2)

    20.5.7 swap、iter_swap和swap_ranges 20.5.8 copy—backward、 merge、 unique和reverse 20.5.9 inplace_merge、 unique—copy和reverse—copy 20.5.10 集合操作 20.5.11 1ower—bound、 upper—bound和...

Global site tag (gtag.js) - Google Analytics