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

c++ STL swap用法和实现

一:功能

      交换两个值

二:用法 

#include <format>
#include <iostream>namespace Library {
struct Storage {int value;
};//支持swap操作
void swap(Storage& left, Storage& right) {std::ranges::swap(left.value, right.value);
}
}int main() {int a = 1, b = 2;std::ranges::swap(a, b); // 3-step-swapstd::format_to(std::ostreambuf_iterator(std::cout),"a == {}, b == {}\n", a, b);Library::Storage j{2}, k{3};std::ranges::swap(j, k); // calls custom Library::swap()std::format_to(std::ostreambuf_iterator(std::cout),"j == {}, k == {}\n", j.value, k.value);
}

三:实现

#include <algorithm>
#include <iostream>template<typename T>
void my_swap(T &a,T &b) noexcept
{T temp = std::move(a);a = std::move(b);b = std::move(temp);
}int main()
{int a = 5, b = 3;std::cout << a << ' ' << b << '\n';my_swap(a, b);std::cout << a << ' ' << b << '\n';
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Cloud Gateway报sun.misc.Unsafe.park(Native Method)
  • 3款自己电脑就可以运行AI LLM的项目
  • AWS无服务器 应用程序开发—第十七章 Application Composer
  • 初识STM32:芯片基本信息
  • 需求分析分类和层级、分析步骤
  • 商品分类左右联动
  • 平凯星辰黄东旭出席 2024 全球数字经济大会 · 开放原子开源数据库生态论坛
  • 安卓逆向经典案例——XX优品(uniapp)
  • 医院门诊预约挂号小程序模板源码
  • 前端JS特效第30波:jquery图片列表按顺序分类排列图片组效果
  • 【MySQL】MySQL连接池原理与简易网站数据流动是如何进行
  • 【计算机组成原理 | 第二篇】计算机硬件架构的发展
  • 【机器学习】基于线性回归的医疗费用预测模型
  • 硬件开发工具Arduino IDE
  • 关于.NETCORE站点程序部署到nginx上无法访问静态文件和无法正确生成文件的问题解决过程。
  • 【知识碎片】第三方登录弹窗效果
  • centos安装java运行环境jdk+tomcat
  • ECMAScript入门(七)--Module语法
  • JavaScript类型识别
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Material Design
  • MD5加密原理解析及OC版原理实现
  • PHP 小技巧
  • vue2.0项目引入element-ui
  • Zsh 开发指南(第十四篇 文件读写)
  • 彻底搞懂浏览器Event-loop
  • 回顾2016
  • 基于web的全景—— Pannellum小试
  • 将回调地狱按在地上摩擦的Promise
  • 你不可错过的前端面试题(一)
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 再次简单明了总结flex布局,一看就懂...
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • (3)llvm ir转换过程
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)socket Aio demo
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET CORE Aws S3 使用
  • .NET Framework杂记
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET框架
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • ::