在同一向量中交换值

时间:2016-12-20 16:37:54

标签: c++ vector

我最近开始看到一些C ++

但我怀疑有点快,因为我没有找到快速反应。 如果我在C ++中有一个向量,我该如何交换它的值?

Python中的

x = ["a", "b", "c", "d"]
x[0], x[1] = x[1], x[0]

Output: ["b", "a", "c", "d"]

在C ++中:

std::vector <char> x {'a', 'b', 'c', 'd'};
char n = x.at(0);
x[0] = x[1];
x[1] = n;

出于好奇,C ++中有不同的方式吗?

3 个答案:

答案 0 :(得分:2)

怎么样

std::swap(x[0],x[1]);

这是兼容C ++ 11的。

答案 1 :(得分:1)

您可以使用std::swap

std::swap(x[0], x[1]);

答案 2 :(得分:1)

您可以使用swap或临时变量或xor:

char tmp = x[0];
x[0] = x[1];
x[1] = tmp;

或:

x[0] ^= x[1];
x[1] ^= x[0];
x[0] ^= x[1];

或交换:

swap(x[0], x[1]);