stl算法copy
2015-12-23 10:17
330 查看
说明:下面3个使用说明
第一个:是把数组拷贝到v里面,使用的 std::back_insert 模板函数,咱们可以进模板函数查看:
template<typename _Container>
479 inline back_insert_iterator<_Container>
480 back_inserter(_Container& __x)
481 { return back_insert_iterator<_Container>(__x); }
其实是使用的 std::back_insert_iterator 适配器,
第二个:把数组拷贝到v2里面,使用的是std::back_insert_iterator适配器,其实和上面一样,只是上面封装了,使用起来也方便
第三个:把数据通过 std::ostream_iterator传输到 std::cout也就是屏幕上面。
1 #include <iostream>
2 #include <iterator>
3 #include <vector>
4 #include <list>
5
6 using std::vector;
7 using std::list;
8
9 int main()
10 {
11 int arr[]={1,2,3,4,5,6,7,8,9,0};
12 vector<int> v;
13 vector<int> v2;
14 list<int> l;
15
16
17 std::copy(arr,arr+sizeof(arr)/sizeof(int), std::back_inserter(v));
18
19 typedef std::ostream_iterator<int> ostreamIter;
20
21 std::cout<<"vector 使用std::back_inserter模板函数:\n";
22 std::copy(v.begin(), v.end(), ostreamIter(std::cout, "\t"));
23
24 std::cout<<std::endl;
25
26 typedef std::back_insert_iterator< vector<int> > backItsertIter;
27 std::copy(arr, arr+sizeof(arr)/sizeof(int), backItsertIter(v2));
28
29 std::cout<<"vector 使用std::back_inserter_iterator适配器:\n";
30 std::copy(v2.begin(), v2.end(), ostreamIter(std::cout, "\t"));
31
32 std::cout<<std::endl;
33
34 std::copy(v.begin(), v.end(), std::back_inserter(l));
35 std::cout<<"list :\n";
36 std::copy(l.begin(), l.end(), ostreamIter(std::cout, "\t"));
37 std::cout<<std::endl;
38
39
40 return 0;
41 }
$ ./a.out
vector 使用std::back_inserter模板函数:
1 2 3
4 5
6 7 8
9 0
vector 使用std::back_inserter_iterator适配器:
1 2 3
4 5
6 7 8
9 0
list :
1 2 3
4 5
6 7 8
9 0
第一个:是把数组拷贝到v里面,使用的 std::back_insert 模板函数,咱们可以进模板函数查看:
template<typename _Container>
479 inline back_insert_iterator<_Container>
480 back_inserter(_Container& __x)
481 { return back_insert_iterator<_Container>(__x); }
其实是使用的 std::back_insert_iterator 适配器,
第二个:把数组拷贝到v2里面,使用的是std::back_insert_iterator适配器,其实和上面一样,只是上面封装了,使用起来也方便
第三个:把数据通过 std::ostream_iterator传输到 std::cout也就是屏幕上面。
1 #include <iostream>
2 #include <iterator>
3 #include <vector>
4 #include <list>
5
6 using std::vector;
7 using std::list;
8
9 int main()
10 {
11 int arr[]={1,2,3,4,5,6,7,8,9,0};
12 vector<int> v;
13 vector<int> v2;
14 list<int> l;
15
16
17 std::copy(arr,arr+sizeof(arr)/sizeof(int), std::back_inserter(v));
18
19 typedef std::ostream_iterator<int> ostreamIter;
20
21 std::cout<<"vector 使用std::back_inserter模板函数:\n";
22 std::copy(v.begin(), v.end(), ostreamIter(std::cout, "\t"));
23
24 std::cout<<std::endl;
25
26 typedef std::back_insert_iterator< vector<int> > backItsertIter;
27 std::copy(arr, arr+sizeof(arr)/sizeof(int), backItsertIter(v2));
28
29 std::cout<<"vector 使用std::back_inserter_iterator适配器:\n";
30 std::copy(v2.begin(), v2.end(), ostreamIter(std::cout, "\t"));
31
32 std::cout<<std::endl;
33
34 std::copy(v.begin(), v.end(), std::back_inserter(l));
35 std::cout<<"list :\n";
36 std::copy(l.begin(), l.end(), ostreamIter(std::cout, "\t"));
37 std::cout<<std::endl;
38
39
40 return 0;
41 }
$ ./a.out
vector 使用std::back_inserter模板函数:
1 2 3
4 5
6 7 8
9 0
vector 使用std::back_inserter_iterator适配器:
1 2 3
4 5
6 7 8
9 0
list :
1 2 3
4 5
6 7 8
9 0
相关文章推荐
- <php+mysql>Mac配置APACHE+PHP+MYSQL+PHPMYADMIN
- Linux 进程管理
- 在Powershell ISE中添加sharepoint的智能提示,Enable SharePoint PowerShell Commandlets in the PowerShell ISE
- DROP TABLE、TRUNCATE TABLE和DELETE的区别
- linux 下shutdown命令关闭多个tomcat问题
- /bin/bash: prebuilts/misc/linux-x86/bison/bison: No such file or directory
- shell set 命令
- arm linux 启动流程分析
- Linux/Unix 桌面趣事:桌面上追逐的猫和老鼠
- linux内核进程详解
- Unity调用外部EXE或Shell命令
- spatialhadoop2.3源码阅读(十一) ShapeRecordReader & SpatialRecordReader[Grid Index MapReuce]
- 分布式系统全链路监控方案设计
- Hadoop生态系统全表
- web在线打印,打印阅览,打印维护,打印设计
- Linux系统下处理已删除文件继续占用磁盘空间的问题
- uptime命令查看系统启动时间和运行时间、查看linux系统负载
- 网站攻击的三种手段及预防方法
- openfire的配置搭建
- Apache限制IP并发数和流量控制的方法