博客
关于我
std::swap C++11示例
阅读量:278 次
发布时间:2019-03-01

本文共 1331 字,大约阅读时间需要 4 分钟。

C++11 中的std::swap

header	// moved from 
to
in C++11non-array (1) template
void swap (T& a, T& b) noexcept (is_nothrow_move_constructible
::value && is_nothrow_move_assignable
::value);array (2) template
void swap(T (&a)[N], T (&b)[N]) noexcept (noexcept(swap(*a,*b)));

注意:

Type T shall be move-constructible and move-assignable (or have swap defined for it, for version (2)).

std::swap 在C++11中定义在,而不再是头文件中。上述两个函数等效为:

template 
void swap (T& a, T& b){ T c(std::move(a)); a=std::move(b); b=std::move(c);}template
void swap (T (&a)[N], T (&b)[N]){ for (size_t i = 0; i

示例:

// swap algorithm example (C++98)#include 
// std::cout#include
// std::swap#include
// std::vectorint main () { int x=10, y=20; // x:10 y:20 std::swap(x,y); // x:20 y:10 std::vector
foo (4,x), bar (6,y); // foo:4个20 bar:6个10 std::swap(foo,bar); // foo:6个10 bar:4个20 std::cout << "foo contains:"; for (std::vector
::iterator it=foo.begin(); it!=foo.end(); ++it) std::cout << ' ' << *it; std::cout << '\n'; return 0;}
foo contains: 10 10 10 10 10 10

转载地址:http://xkqx.baihongyu.com/

你可能感兴趣的文章
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>
MySQL 存储过程参数:in、out、inout
查看>>
mysql 存储过程每隔一段时间执行一次
查看>>
mysql 存在update不存在insert
查看>>
Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势
查看>>
Mysql 学习总结(87)—— Mysql 执行计划(Explain)再总结
查看>>
Mysql 学习总结(88)—— Mysql 官方为什么不推荐用雪花 id 和 uuid 做 MySQL 主键
查看>>
Mysql 学习总结(89)—— Mysql 库表容量统计
查看>>
mysql 实现主从复制/主从同步
查看>>
mysql 审核_审核MySQL数据库上的登录
查看>>
mysql 导入 sql 文件时 ERROR 1046 (3D000) no database selected 错误的解决
查看>>
mysql 导入导出大文件
查看>>
mysql 常用
查看>>
MySQL 常用列类型
查看>>
mysql 常用命令
查看>>
Mysql 常见ALTER TABLE操作
查看>>
mysql 往字段后面加字符串
查看>>
mysql 快速自增假数据, 新增假数据,mysql自增假数据
查看>>