在int的向量上使用std::swap
Using std::swap on a vector of int
我有一个int的vector
。。。我只想交换两个值。
std::vector<int> vec;
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());
在调用掉期之前,我的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());
相关文章:
- a,b = b,a in python vs std::swap() in C++
- 使用 std::swap 禁用 ADL
- 如何使用 std::swap with array?
- 智能指针的 std::swap 是否保证引用保持不变?
- "std::swap"应用于这些对象时会做什么?
- 为什么 std::swap 不使用 swap 习语?
- 为什么有这么多std::swap的专业化
- 为什么使用std::swap不会在外部范围中隐藏其他交换函数
- 在结构C++中使用 std::swap 与 std::vector
- 为什么 std::swap 不适用于地址运算符
- std::swap vs std::exchange vs swap operator
- 使用静态tmp变量为简单类型C++重新实现std::swap()
- 使用 GCC 4.8 编译时无法对向量执行 std::swap
- 可以将"using std::swap;"放在标题中吗?
- "using std::swap"如何启用 ADL?
- std::swap 在 VS 2013 中导致无限递归
- 为什么不是 std::swap 在全局命名空间中
- std::swap(*(void **)x, *(void **)y)y是什么意思
- 在向量之间使用 std::swap 或 vector::swap
- 为什么 std::swap 不适用于模板项