Sword STL迭代器prev,next相关函数

迭代器的头文件中定义了4个实现迭代器模板的函数模板.

1、advance(iterator,num):将迭代器iterator 移动了num个位置

2、distance(iterator1,iterator2):返回两个迭代器之间的元素的个数

3、next(iterator,n):将iterator正向偏移n之后所指向位置的一个迭代器

4、prev(iterator,n):返回iterator反向偏移n之后的所指向的一个迭代器
#include <iostream>
#include <vector>
#include <iterator>   /*prev() next() 方法头文件*/

void test()
{
    std::vector<int> v1;
    std::vector<int>::iterator it;
    
    v1.push_back(1);
    v1.push_back(2);
    v1.push_back(3);
    v1.push_back(4);
    v1.push_back(5);
    v1.push_back(6);
    v1.push_back(7);
    v1.push_back(8);
    v1.push_back(9);
    v1.push_back(10);

    for (it = v1.begin(); it != v1.end(); ++it)
    {
        //排除第一个
        if (it == v1.begin())
        {
            continue;
        }
        //排除倒数第二个
        if (std::next(it) == v1.end())
        {
            break;
        }
        printf("=prev[%d]===current[%d]===end[%d]====\n", *std::prev(it), *it, *std::next(it));
    }

}


int main()
{
    test();
    getchar();
    return 0;
}

 

posted on 2018-12-13 20:39  寒魔影  阅读(734)  评论(0编辑  收藏  举报

导航