将 vector<vector> 的最后一个元素移动到<int>开头

Move last element of vector<vector<int>> to beginning

本文关键字:vector gt lt int 开头 移动 最后一个 元素      更新时间:2023-10-16

我需要将vector<vector<int>>的最后一个元素移到开头。我试过std::rotate,但它仅适用于整数。我也尝试了std::move但我失败了。我该怎么做?提前谢谢你。

要将最后一个元素放在开头,您可以使用带有反向迭代器的 std::rotate 函数。这将执行右旋转

#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函数不依赖于类型。