比map更強大的multimap


#include <iostream>
#include <string>
#include <map>
using namespace std;
int i;
int main()
{multimap <char ,int >m;

multimap <char ,int >::iterator kan,kan1,it;

  m.insert(pair<char, int>('a', 1));
  m.insert(pair<char, int>('a', 2));
  m.insert(pair<char, int>('a', 3));
m.insert(pair<char, int>('b', 4));
m.insert(pair<char, int>('c', 5));

//multimap::insert()成員函數返回指向新插入元素的迭代指針,也就是 iterator(multimap::insert()總是能執行成功)。但是 map::insert() 返回 pair<iterator, bool>,此處 bool 值表示插入操作是否成功。


  cout<< m.count('a') << endl;//count返回的是數量,而map里面返回的時1或0;


 pair <std::multimap<char,int>::iterator, std::multimap<char,int>::iterator> ret;
    ret = m.equal_range('a');
    for (kan=ret.first; kan!=ret.second; ++kan)
      std::cout << ' ' << kan->second;
    std::cout << '\n';

kan=m.find('a');//find(k) 返回指向第一個與鍵 k 匹配的 pair 的迭代指針,這就是說,當你想要檢查是否存在至少一個與該鍵關聯的值時,或者只需第一個匹配時,這個函數最有用。
kan1=m.find('c');
for(it=kan;it!=kan1;it++)
cout<<it->second<<" ";

 

 

cout<<endl;
kan = m.lower_bound ('a');
 kan1 = m.upper_bound ('a');
for(it=kan;it!=kan1;it++)
cout<<it->second<<" ";
// lower_bound() 和 upper_bound():lower_bound(k) 查找第一個與鍵 k 關聯的值,而 upper_bound(k) 是查找第一個鍵值比 k 大的元素。

return 0;
}


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com