2016-12-20 44 views
-1

我最近開始看到一些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++中以不同的方式?

回答

2

如何

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

這是C++ 11兼容。

1

您可以使用std::swap

std::swap(x[0], x[1]); 
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]);