在同一向量中的交换值

Exchange values in the same vector

本文关键字:交换 向量      更新时间:2023-10-16

我最近开始看到一些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 中有其他方式?

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

这是C 11兼容。

您可以使用std::swap

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

您可以使用交换或临时变量或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]);