当前位置:  开发笔记 > 编程语言 > 正文

在int的向量上使用std :: swap

如何解决《在int的向量上使用std::swap》经验,为你挑选了1个好方法。

我有一个vectorint ...我只想交换两个值.

    std::vector 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());

在调用swap之前,我有我的vec:

[0,1,2,3,4,5,6,7,8]

std::swap(...)我希望将vec作为:

[8,1,2,3,4,5,6,7,0]

但它仍然是初始状态.这里有什么问题?



1> Viktor Sehr..:

这应该可以解决问题

assert(!vec.empty());
std::swap(vec.front(), vec.back());

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有