STL 之swap, iter_swap, swap_ranges
作用:交换元素
声明:
- #include <algorithm>
- template<class Type>
- void swap(Type& objcet1, Type& objec2);
- template<class forwardItr1,class forwardItr2>
- void iter_swap(forwardItr1 first,forwardItr2 scecod);
- template<class forwardItr1, class forwardItr2>
- forwardItr2 swap_ranges(forwardItr1 first,forwardItr1 last, forwardItr2 first2);
示例代码:
- #include <iostream>
- #include <list>
- #include <string>
- #include <numeric>
- #include <iterator>
- #include <vector>
- #include <functional>
- #include <algorithm>
- using namespace std;
- int main() {
- char cList[10] = {'A','B','C','D','F','G','H','I','J','K'};
- vector<char> charList(cList,cList+10);
- vector<char>::iterator charItr;
- ostream_iterator<char> screen(cout," ");
- cout << "charList:" << endl;
- copy(charList.begin(),charList.end(),screen);
- cout << endl;
- // 容器内部元素交互
- swap(charList[0],charList[1]);
- cout << "charList.swap" << endl;
- copy(charList.begin(),charList.end(),screen);
- cout << endl;
- // 用迭代器进行交互
- iter_swap(charList.begin() + 2,charList.begin() + 3);
- cout << "charList.iter_swap" << endl;
- copy(charList.begin(),charList.end(),screen);
- cout << endl;
- charItr = charList.begin() + 4;
- iter_swap(charItr,charItr + 1);
- cout << "charList.iter_swap" << endl;
- copy(charList.begin(),charList.end(),screen);
- cout << endl;
- int list[10] = {1,2,3,4,5,6,7,8,9,10};
- vector<int> intList(list,list + 10);
- ostream_iterator<int> screenInt(cout, " ");
- cout << "intList:" << endl;
- copy(intList.begin(),intList.end(),screenInt);
- cout << endl;
- swap_ranges(intList.begin(),intList.begin()+4,intList.begin()+5);
- cout << "intList.swap_ranges:" << endl;
- copy(intList.begin(),intList.end(),screenInt);
- cout << endl;
- // 不同容器之间元素交互
- swap_ranges(list,list+10,intList.begin());
- cout << "list:" << endl;
- copy(list,list+10,screenInt);
- cout << endl;
- cout << "intList: " << endl;
- copy(intList.begin(),intList.end(),screenInt);
- cout << endl;
- return 0;
- }
运行结果:
charList:
A B C D F G H I J K
charList.swap
B A C D F G H I J K
charList.iter_swap
B A D C F G H I J K
charList.iter_swap
B A D C G F H I J K
intList:
1 2 3 4 5 6 7 8 9 10
intList.swap_ranges:
6 7 8 9 5 1 2 3 4 10
list:
6 7 8 9 5 1 2 3 4 10
intList:
1 2 3 4 5 6 7 8 9 10
STL 之swap, iter_swap, swap_ranges相关推荐
- C++STL中swap函数操作与内存地址改变的简析
写在前面 这篇文章主要讨论了STL中swap函数在交换2个容器的内容的时候是交换内存还是交换元素的问题.由于博主对C++的学习并不好,如果有什么错误恳请大家提出.下面会有一些代码展示一下swap函数在 ...
- stl swap函数_C ++ STL | vector :: swap()函数与示例
stl swap函数 C ++ STL vector :: swap()函数 (C++ STL vector::swap() function) vector::swap() function is ...
- stl string 源代码分析
STL中string的源码解读 Ryan peng cutezero@163.com Sunday, June 03, 2007 这是个人最近比较闲暇之余,对SGI STL中string分析,如果有任 ...
- 【C++ STL学习笔记】C++ STL序列式容器(array,vector,deque,list)
文章目录 C++ STL容器是什么? 迭代器是什么,C++ STL迭代器(iterator)用法详解 迭代器类别 迭代器的定义方式 C++序列式容器(STL序列式容器)是什么 容器中常见的函数成员 C ...
- c++高级编程学习笔记4
C++运算符重载 运算符重载概述 根据第 1 章的描述,C++中的运算符是一些类似于+.<.*和<<的符号.这些运算符可应用于内建类型,例如 int 和 double,从而实现算术操 ...
- TLD(Tracking-Learning-Detection)学习与源码理解之(四)
TLD(Tracking-Learning-Detection)学习与源码理解之(四) zouxy09@qq.com http://blog.csdn.net/zouxy09 下面是自己在看论文和这些 ...
- Palabos用户手册翻译及学习(四)非本地操作的数据处理器和块之间的耦合
非本地操作的数据处理器和块之间的耦合 Palabos用户文档 的第十六章 (#)前言 原始文档 Dynamics classes and data processors are the nuts an ...
- 《Effective C++》》阅读笔记
第一章 Accustoming Yourself to C++ 1 View C++ as a federation of language (1). ...
- Palabos User Guide中文解读 | 第十六章 | 非局部操作的数据处理器和Block之间耦合
作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋 ...
最新文章
- 细节:js 创建对象的几种模式举例
- 7-7 字符串修改 (15 分)
- YARP(Yet Another Reverse Proxy)是使用 .NET 构建的高度可定制的反向代理
- 前端开发——移动端及响应式布局解决办法总结(适配)
- Asp.net中的时区
- 作者:​高晨旭(1990-),男,北京系统工程研究所研究实习员。
- 矩阵的运算及其运算规则
- 机器学习 Machine Learning中多元线性回归的学习笔记~
- 微软面试智力题 (附答案)
- 电力行业巡检对讲通信系统
- android 微博sdk 集成 文件不存在(8998) 您所访问的站点在新浪微博的认证失败,错误码 21322
- css中reset属性详解,css中如何使用counter-reset属性
- 谷歌浏览器webGL实验
- 服务器被劫持,恶意注入js
- P quant与Q quant
- 用python和flask框架写MongoDB数据库网页(通院大三软件设计)运营商信息管理系统(1)环境配置
- 马克扎克伯格节俭_马克·扎克伯格的垃圾实在很难抢
- excel学习笔记:数据格式,单元格格式(快捷键,自动调整行列宽,条件格式,自定义格式,日期星期时间的设置,特殊数字,多种填充方式,从下拉列表选择,数据验证。)
- PCI、PCI-X、PCI-E、PCI-E Card、Mini PCI-E、M.2、Add-in Card 它们有啥区别?这些概念你搞清楚了吗?
- 字节跳动P0级事故:实习生删除GB以下所有模型,差点没上头条......