C++写出像Python那样优雅的一行交换函数

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6



tags: C++

写在前面

众所周知, Python中交换两个数可以用:

a, b = b, a

十分优雅, 那么C++可以这样吗? C++11告诉你, 能!

tie(a, b) = pair(b, a);

测试一下:

#include <iostream>
using namespace std;

int main(int argc, char const *argv[]) {
int a = 10, b = 20;
cout << a << " " << b << endl;
tie(a, b) = pair(b, a);
cout << a << " " << b << endl;
/*10 20
20 10*/
return 0;
}

pair真是个好东西!

当然了, 这样写其实有点消耗内存, 因为多开辟了一个​​pair​​​, 炫技可以用, 一般情况下还是老老实实​​swap(a, b)​​吧.


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: pythonc++