////////////////////////////////////////
// 2018/05/06 9:13:38
// multimap-rend
// returns a reverse iterator to the beginning of the maltimap
#include <iostream>
#include <map>
#include <iomanip>
#include <string>
using namespace std;
template<class T>
class ID{
public:
ID(T t, T n) :id(t), name(n){}
void print(){
cout.setf(ios::left);
cout << setw(15) << name << " " << id << endl;
cout.unsetf(ios::left);
}
private:
T id, name;
};
int main(){
typedef ID<string> ld;
typedef multimap<int, ld> M;
typedef M::value_type v_t;
M m;
m.insert(v_t(1,ld("000123","Shevchenko")));
m.insert(v_t(2,ld("000124","Pushkin")));
m.insert(v_t(3,ld("000125","Shakespeare")));
// same key
m.insert(v_t(3,ld("000126","Smith")));
M::reverse_iterator lt = m.rbegin();
while (lt != m.rend()){
cout.setf(ios::left);
cout << setw(3) << lt->first;
lt->second.print();
lt++;
}
return 0;
}
/*
OUTPUT:
3 Smith 000126
3 Shakespeare 000125
2 Pushkin 000124
1 Shevchenko 000123
*/
multimap-rend
最新推荐文章于 2024-11-02 19:05:21 发布
本文介绍了一个使用C++实现的multimap逆向迭代的例子。通过定义一个模板类ID来存储标识符和名称,并使用multimap存储整数键与ID实例的对应关系。演示了如何插入数据并利用reverse_iterator从multimap的末尾开始遍历,展示逆向迭代器的用法。
408

被折叠的 条评论
为什么被折叠?



