本文共 976 字,大约阅读时间需要 3 分钟。
上代码:
// test2013.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #include using namespace std;struct CmpByKeyNumber { bool operator()(const int& k1, const int& k2) { return k1 < k2; //升序排列 }};int _tmain(int argc, _TCHAR* argv[]){ std::map arr; arr.insert(make_pair(0, "dd")); arr.insert(make_pair(1, "bbbbb")); arr.insert(make_pair(2, "aaaaaaaaaaa")); std::map ::iterator itTemp = arr.find(2); if (itTemp == arr.end()) { return -2; } /* 这里转为反向迭代器。 注意,正向迭代器转为反向迭代器后,反向迭代器指向的是正向迭代器的前一个元素。 所以,这里用了++:先++,itTemp指向下一个元素(即是arr.end() ), 通过这样的方式,反向迭代器和正向迭代器指向的都是同一个pair。 */ std::map ::reverse_iterator it(++itTemp); for (; it != arr.rend(); it++) { int key = it->first; string dd = it->second; printf("pair( %d, %s )\n", key, dd.c_str()); } printf("\ndone\n"); getchar(); return 0;}
运行效果:
完。
转载于:https://www.cnblogs.com/liyou-blog/p/5780943.html