当前位置: 首页 > news >正文

C++ STL copy, move 用法

一:功能

        正向(从前向后的顺序)拷贝/移动操作,将一个容器元素拷贝/移动到另一容器中。

二:用法

#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<std::string> data{ "a", "b", "c", "d", "e", "f"};for (auto v : data)std::cout << v << " ";std::cout << "\n";std::copy(data.begin(), data.begin()+3, data.begin()+3);for (auto v : data)std::cout << v << " ";std::cout << "\n";// Overlapping case:std::copy(std::next(data.begin()), data.end(), data.begin());for (auto v : data)std::cout << v << " ";std::cout << "\n";
}
#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>int main() {std::vector<std::string> data{ "a", "b", "c", "d", "e", "f"};for (auto &v : data)std::cout << std::quoted(v) << " ";std::cout << "\n";//"a" "b" "c" "d" "e" "f" std::move(data.begin(), data.begin()+3, data.begin()+3);for (auto &v : data)std::cout << std::quoted(v) << " ";std::cout << "\n";//"" "" "" "a" "b" "c" 
}
#include <iostream>
#include <vector>
#include <algorithm>struct CopyOnly {CopyOnly() = default;CopyOnly(const CopyOnly&) = default;CopyOnly& operator=(const CopyOnly&) { std::cout << "Copy assignment.\n";return *this;};
};int main() {std::vector<CopyOnly> test(6);//移动操作取决于底层元素类型,如果不支持移动操作,实际还是走的拷贝操作std::move(test.begin(), test.begin()+3, test.begin()+3);
}

http://www.lryc.cn/news/415835.html

相关文章:

  • MoonBit 周报 Vol.52:增加类型别名的支持、错误类型声明方式说明、MoonBit AI 支持生成文档等!
  • Android开发之事件分发
  • PyTorch深度学习实战(2)——PyTorch快速入门
  • ServletConfig、ServletContext超详细讲解
  • 【文献阅读】GraphAny: A Foundation Model for Node Classification on Any Graph
  • 动态规划.
  • PHP常用函数
  • 完全用python 实现消息中间件4
  • 公司新来的两个Java后端,因题背太熟轻松过面试?
  • Pinia状态管理库
  • 利用ffmpeg转码视频为gif图片,调整gif图片的大小
  • 【Java 第四篇章】流程控制、容器
  • 华为云全域Serverless技术创新:全球首创通用Serverless平台被ACM SIGCOMM录用
  • 除自身以外数组的相乘 C++
  • Element UI 如何配置文件来设置全局的语言选项。
  • Windows 常用命令集锦
  • 第一阶段面试问题(后半部分)
  • 【AIGC】ComfyUI入门-使用ComfyUI_MagicClothing插件在生成图片时候出现的问题
  • 巴黎奥运会8K转播科技为国产品牌自主研发设计
  • 【Material-UI】Button 组件中的图标和标签按钮(Buttons with Icons and Label)详解
  • K个一组翻转链表(LeetCode)
  • 2-56 基于matlab的图像融合增强技术
  • 序列化定义以及使用和注意事项
  • 吴恩达机器学习COURSE1 WEEK3
  • 白骑士的PyCharm教学高级篇 3.1 性能分析与优化
  • swiper横向轮播(阶梯式滚动轮播)未生效
  • 基于arcpro3.0.2的北斗网格生成简介
  • 网络流算法:最大流问题
  • C++从入门到入土(四)--日期类的实现
  • 【香橙派系列教程】(七)香橙派下的Python3安装