zoukankan      html  css  js  c++  java
  • std的find和reverse_iterator联合使用

    上代码:

    // test2013.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <stdlib.h>
    #include <stdio.h>
    #include<iostream>
    #include<vector>
    #include<map>
    #include<string>
    using namespace std;
    
    struct CmpByKeyNumber {
        bool operator()(const int& k1, const int& k2) {
            return k1 < k2;  //升序排列
        }
    };
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        std::map<int, string, CmpByKeyNumber> arr;
    
        arr.insert(make_pair(0, "dd"));
        arr.insert(make_pair(1, "bbbbb"));
        arr.insert(make_pair(2, "aaaaaaaaaaa"));
    
        std::map<int, string>::iterator itTemp = arr.find(2);
        if (itTemp == arr.end())
        {
            return -2;
        }
    
        /*
        这里转为反向迭代器。
        注意,正向迭代器转为反向迭代器后,反向迭代器指向的是正向迭代器的前一个元素。
        所以,这里用了++:先++,itTemp指向下一个元素(即是arr.end() ),
        通过这样的方式,反向迭代器和正向迭代器指向的都是同一个pair。
        */
        std::map<int, string>::reverse_iterator it(++itTemp);
        for (; it != arr.rend(); it++)
        {
            int key = it->first;
            string dd = it->second;
            printf("pair( %d, %s )
    ", key, dd.c_str());
        }
    
        printf("
    done
    ");
        getchar();
        return 0;
    }

    运行效果:

    完。

  • 相关阅读:
    用python3实现linux的sed功能
    查找列表中指定的所有元素的位置
    Django分页
    python3中字典的copy
    Python中is和==的区别的
    python3的文件读写模式
    使用python3简单完成购物过程
    python3中str的函数
    第一篇
    《笑傲江湖》传剑摘录 有感而发
  • 原文地址:https://www.cnblogs.com/liyou-blog/p/5780943.html
Copyright © 2011-2022 走看看