0.时刻提醒自己

Note: vector的释放

1.功能

复制 [first, last) 所定义的范围中的元素到始于 d_first 的另一范围.

区别: copy_if 带条件拷贝,而非全拷贝

2. 头文件与返回值

2.1 头文件

#include <numeric>

2.2 返回值

指向目标范围中最后复制元素的下个元素的输出迭代器

3. 异常

可能抛出异常

若算法无法分配内存,则抛出 std::bad_alloc 。

4.copy用法

4.1 代码

// 1. 构建一个原始数组
std::vector<int> src_vector(5);
// iota(起始,结束,从哪一个开始);
std::iota(src_vector.begin(), src_vector.end(), 10); // 2. 将原始数组拷贝到目标数组
std::vector<int> dst_vector; // 3. 执行拷贝
std::copy(src_vector.begin(), src_vector.end(), std::back_inserter(dst_vector)); // 4.遍历输出目标数组和原始数组
std::cout << "原始数组:\n";
std::for_each(src_vector.begin(), src_vector.end(), [](const int &item) {std::cout << "item = " << item << std::endl; }); std::cout << "目标数组:\n";
std::for_each(dst_vector.begin(), dst_vector.end(), [](const int &item) {std::cout << "item = " << item << std::endl; });

4.2 输出

5.copy_if用法

5.1 代码

// 1. 构建一个原始数组
std::vector<int> src_vector(5);
// iota(起始,结束,从哪一个开始);
std::iota(src_vector.begin(), src_vector.end(), 10); // 2. 将原始数组拷贝到目标数组
std::vector<int> dst_vector(src_vector.size()); // 3. 将 src 拷贝到 dst,当时只拷贝大于13的元素。
auto it = std::copy_if(src_vector.begin(), src_vector.end(), dst_vector.begin(), [](const int item) {return item > 13; });
// 调整拷贝后的大小,为什么? 因为初始化时,指定了其大小
dst_vector.resize(std::distance(dst_vector.begin(), it)); // 4.遍历输出目标数组和原始数组
std::cout << "原始数组:\n";
std::for_each(src_vector.begin(), src_vector.end(), [](const int &item) {std::cout << "item = " << item << std::endl; }); std::cout << "目标数组:\n";
std::for_each(dst_vector.begin(), dst_vector.end(), [](const int &item) {std::cout << "item = " << item << std::endl; });

5.2 输出

最新文章

  1. Node学习笔记(三):基于socket.io web版你画我猜(一)
  2. ldconfig和ldd用法
  3. Server Name Indication(SNI)
  4. vsftp linux
  5. IOC容器中bean的生命周期
  6. 最近兰州的js风格写个插件和一个template engine
  7. ValueError: No JSON object could be decoded?此种异常的解决方案之一
  8. MySQL 覆盖索引
  9. 从零开始学Xamarin.Forms(一) 概述
  10. eclipse导入lombok后打不开(如果你的lombok不是最新的,那就来下载最新的)
  11. BZOJ1059_矩阵游戏_KEY
  12. localstorage本地定时缓存
  13. 弹筐里同一个按钮判断是从哪里点击过来的form
  14. centos 7 安装
  15. jQuery之基础核心(demo)
  16. go相关知识点
  17. promise-不使用catch出现warning的原因
  18. [leetcode]Unique Paths @ Python
  19. mha error
  20. Python之路(第二篇):Python基本数据类型字符串(一)

热门文章

  1. 51nod 1709 复杂度分析
  2. IDEA 配置背景颜色(豆沙绿)
  3. jupyter 远程访问
  4. 富集分析DAVID、Metascape、Enrichr、ClueGO
  5. zabbix-磁盘状态脚本
  6. Linux—find在指定路径下查找文件或目录
  7. 3步!完成WordPress博客迁移与重新部署
  8. 转 Android Lifecycle、ViewModel和LiveData
  9. 【编程思想】【设计模式】【行为模式Behavioral】registry
  10. 【编程思想】【设计模式】【结构模式Structural】装饰模式decorator