C++STL迭代器

C++STL迭代器

迭代器是开发中操作容器的常用工具,大部分迭代器操作在容器类成员函数中可直接使用;
但是有一些操作直接使用容器成员函数中的方法可能并不方便,而C++STL中提供的迭代器辅助函数可简洁实现这些操作;
故以下介绍C++STL中迭代器辅助函数,其与容器中成员函数迭代器相关方法结合使用,可有事半功倍的效果;
其中有四个迭代器辅助函数最为常用,示例代码如下:

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

int main()
{
    std::vector<int> vec = {3, 1, 4};
    std::vector<int>::iterator it = vec.begin();

    auto itBeg = std::begin(vec);    // 推荐使用容器类的成员函数
    auto itEnd = std::end(vec);    // 推荐使用容器类的成员函数

    // 以下是迭代器辅助函数最为常用的四种操作
    std::advance(it, 1);    // 跳转
    auto prev_it = std::prev(it);    // 上一个
    auto next_it = std::next(it);    // 下一个
    int dis = std::distance(prev_it, next_it);    // 两个游标之间距离
    
    std::cout << "*it = " << *it << std::endl;
    std::cout << "dis = " << dis << std::endl;

    return 0;
}

本文作者: 王同学