写在前面
众所周知, 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)
吧.