multimap使用工程中,迭代器的使用经常让人费解,下面进行了总结,值得关注。 程序可在codeblocks中正常运行
#include <iostream>
#include <stack>
#include <queue>
#include<map>
using namespace std;
int main()
{
multimap<string,string> book;
book.insert(make_pair("wanglibao","C++"));
book.insert(make_pair("wanglibao3","java"));
book.insert(make_pair("wanglibao","HTMl5"));
book.insert(make_pair("wanglibao2","java2"));
book.insert(make_pair("wanglibao2","java1"));
multimap<string,string>::size_type size;
size = book.count("wanglibao");
cout << size <<endl;
multimap<string,string>::iterator map_it = book.find("wanglibao");
for(int i = 0; i < size; i++) {
cout << map_it->second <<endl;
map_it++; //该迭代器只指向find的值对应的项目
}
cout<< endl;
multimap<string,string>::iterator m_e = book.upper_bound("wanglibao2");
multimap<string,string>::iterator m_s = book.lower_bound("wanglibao");
while (m_s != m_e) { //迭代器中只包含wanglibao2,wanglibao对应的项
cout << m_s->second<<endl;
++m_s;
}
return 0;
}