移动向量的最后一个元素 >开始

问题描述 投票:0回答:1

我需要将vector<vector<int>>的最后一个元素移动到开头。我试过std::rotate,但它只适用于整数。我也试过std::move但我失败了。我怎么能这样做?先感谢您。

c++ vector std
1个回答
2
投票

要将最后一个元素放在开头,您可以将std::rotate函数与reverse iterators一起使用。这执行正确的旋转:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    std::rotate(v.rbegin(), v.rbegin() + 1, v.rend());
    for (auto el : v) {
        std::cout << el << ' ';
    }
}

要交换第一个和最后一个元素,请使用std::swap函数和vector的front()back()引用:

std::swap(v.front(), v.back());

std::rotate函数不依赖于类型。

© www.soinside.com 2019 - 2024. All rights reserved.