我有一个vector
int ...我只想交换两个值.
std::vectorvec; vec.push_back(0); vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); vec.push_back(5); vec.push_back(6); vec.push_back(7); vec.push_back(8); std::swap(vec.begin(), vec.end());
在调用swap之前,我有我的vec:
[0,1,2,3,4,5,6,7,8]
在std::swap(...)
我希望将vec作为:
[8,1,2,3,4,5,6,7,0]
但它仍然是初始状态.这里有什么问题?
这应该可以解决问题
assert(!vec.empty()); std::swap(vec.front(), vec.back());