C++11通过迭代器反转向量元素

反转向量容器中的元素,可以通过索引方式,也可以直接调用C++STL标准库中的std::reverse函数实现,还可以通过迭代器实现。
下面将通过迭代器实现向量元素反转:

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

using namespace std;

int main(int argc, char** argv)
{
    // 初始化向量
    vector<int> data{};
    // 初始化输入值
    int x{};

    cout << "please input:\n";
    // 读入数据
    copy(istream_iterator<int>(cin),istream_iterator<int>(),back_inserter(data));

    //输出
    cout << "before inverse:\n";
    copy(data.begin(),data.end(),ostream_iterator<int>(cout,","));
    cout << endl;

    // 反转向量
    for(vector<int>::iterator start{data.begin()},end{data.end()};
            start != end && start != --end;++start){
        // 交换元素
        iter_swap(start,end);
    }

    // 输出
    cout << "after inverse:\n";
    copy(data.begin(),data.end(),ostream_iterator<int>(cout,","));
    cout << endl;

    // 直接调用reverse函数
    reverse(data.begin(),data.end());

     // 输出
    cout << "after inverse again:\n";
    copy(data.begin(),data.end(),ostream_iterator<int>(cout,","));
    cout << endl;

    return 0;
}

猜你喜欢

转载自blog.csdn.net/wujuxKkoolerter/article/details/114096654