STL算法 ------- 复制元素(Copying)
来源:互联网 发布:涂鸦跳跃源码 编辑:程序博客网 时间:2024/05/16 15:16
1.copy()
2.copy_backward()
3.注意:
(1) 没有copy_if()算法,可以使用remove_copy_if() 算法
(2) 复制过程中要逆转元素次序,使用 reverse_copy() 算法
(3) 把容器内所有元素赋值给另一个容器,要用赋值操作符或容器的assign()成员
(4) 复制过程中删除某些元素, 使用remove_copy() 和 remove_copy_if() 算法
(5) 复制中改变元素,使用transform() 或 replace_copy() 算法
#include <iostream>#include <vector>#include <list>#include <algorithm>using namespace std;int main( int argc, char** argv ){list<int> lst;for( int i=0; i<10; ++i ){lst.push_back(i);}for(list<int>::const_iterator itr=lst.begin(); itr!=lst.end(); ++itr){cout<<*itr<<' ';}cout<<endl;vector<int> vec(lst.size()*2);for(vector<int>::const_iterator itr=vec.begin(); vec.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;copy(lst.begin(), lst.end(), vec.begin() );for(vector<int>::const_iterator itr=vec.begin(); vec.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;copy_backward(lst.begin(), lst.end(), vec.end());for(vector<int>::const_iterator itr=vec.begin(); vec.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;return 0;}
#include <iostream>#include <vector>#include <list>#include <iterator>#include <algorithm>using namespace std;int main( int argc, char** argv ){list<int> lst;for( int i=1; i<10; ++i ){lst.push_back(i);}for(list<int>::const_iterator itr=lst.begin(); itr!=lst.end(); ++itr){cout<<*itr<<' ';}cout<<endl;//必须声明容器的大小//vector<int> vec(9);//copy(lst.begin(), lst.end(), vec.begin() );vector<int> vec;copy(lst.begin(), lst.end(), back_inserter(vec) );for(vector<int>::const_iterator itr=vec.begin(); vec.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;copy(lst.begin(), lst.end(), ostream_iterator<int>(cout, " "));cout<<endl;copy(lst.rbegin(), lst.rend(), vec.begin() );for(vector<int>::const_iterator itr=vec.begin(); vec.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;return 0;}
#include <iostream>#include <algorithm>#include <vector>using namespace std;int main( int argc, char** argv ){vector<char> source(10, '.');for(int c='a'; c<='f'; ++c ){source.push_back(c);}source.insert(source.end(), 10, '.');for(vector<char>::const_iterator itr=source.begin(); source.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;vector<char> c1(source.begin(), source.end());copy(c1.begin()+10, c1.begin()+16, c1.begin()+7);for(vector<char>::const_iterator itr=c1.begin(); c1.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;vector<char> c2(source.begin(), source.end());copy_backward(c2.begin()+10, c2.begin()+16, c2.begin()+19);for(vector<char>::const_iterator itr=c2.begin(); c2.end()!=itr; ++itr){cout<<*itr<<' ';}cout<<endl;return 0;}
0 0
- STL算法 ------- 复制元素(Copying)
- 各种算法-复制 (Copying)
- C++ STL 算法:复制元素
- STL算法------元素计数
- C++ STL 算法:元素计数
- STL_算法(16)_复制元素 copy() copy_backward()
- STL 排序算法 复制 交换 求和 填充
- C++ STL 算法:对所有元素排序
- STL算法 -------- 对所有元素排序
- c++之STL(11) 算法- 元素计数
- STL 容器里的元素,必须“可复制”
- STL_算法_复制元素(copy、copy_backward)
- Copying Books (二分法)
- Copying Books--(二分)
- Copying Books (二分)
- c++学习笔记之复制控制与stl算法
- STL算法之复制 移动 填充 归并 替换
- 元素复制
- 关于动态链接中的全局变量
- 责任链模式
- Gradle之依赖和发布(dependencies and artifacts)
- 循环-28. 求给定序列前N项和之六(15)
- perl 文件打包操作
- STL算法 ------- 复制元素(Copying)
- org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletCon
- Weblogic常见故障一:JDBC Connection Pools .
- oracle sqlplus调用.sql文件 bat调用sql 并出力spool log
- JavaScript性能优化小知识总结
- 命令模式
- android代码安装报错No activity found to handle Intent error
- 备忘录模式
- C++ 打印Vector、map