multimap操作

1,multimap與map大致相同。

  (1),insert不同;

  (2),允許有相同關鍵字的,輸出按順序輸出。

2,find()相同的返回指向第一個迭代器。

3,erase()刪除相同的所有。

 

#include <iostream>
using namespace std;
#include <map>
#include <iterator>
#include <cstdio>
int main()
{
    /*
    multimap<string,int> maps1;   //定義
    multimap<int,string> maps2;
    multimap<char,int> maps3;
    multimap<int,char> maps4;
    multimap<string,char> maps5;
    multimap<char,string> maps6;
    multimap<int,int> maps7;
    multimap<char,char> maps9;
    multimap<string,string> maps0;
    multimap<int,float> maps10;
    multimap<int,double> maps11;
    multimap<char,float> maps12;
    multimap<char,double> maps13;
    multimap<string,float> maps14;
    multimap<string,double> maps15;
    multimap<float,int> maps16;
    multimap<float,char> maps17;
    multimap<float,string> maps18;
    multimap<float,double> maps19;
    multimap<float,float> maps20;
    multimap<double,int> maps21;
    multimap<double,char> maps22;
    multimap<double,string> maps23;
    multimap<double,float> maps24;
    multimap<double,double> maps25;*/

   /* multimap<int,char> maps;             //插入
    maps.insert(make_pair<int,char>(5,'q'));
    maps.insert(make_pair(2,'k'));
    maps.insert(make_pair(4,'g'));
    maps.insert(make_pair(2,'u'));
    maps.insert(make_pair(1,'a'));*/
    //multimap<int,char>::iterator l_it;
    //for(l_it=maps.begin();l_it!=maps.end();++l_it)   //順序輸出
    //{
    //    printf("%d    %c\n",l_it->first,l_it->second);
    //}
    //multimap<int,char>::reverse_iterator l_it;
    //for(l_it=maps.rbegin();l_it!=maps.rend();++l_it)   //倒序輸出
    //{
    //    printf("%d    %c\n",l_it->first,l_it->second);
    //}
    /*
    cout<<maps.size()<<endl;                           //size();
    if(maps.empty())                                    //empty();
        printf("空\n");
    else
        printf("不空\n");
    maps.clear();                                    //clear();
    cout<<maps.size()<<endl;
    if(maps.empty())
        printf("空\n");
    else
        printf("不空\n");*/
    //cout<<maps.count(3)<<endl;                        //count();
    /*
    map<int,char>::iterator l_it;
    l_it=maps.find(2);                               //find();查關鍵字
    if(l_it==maps.end())
        printf("沒找到\n");
    else
        printf("%d   %c\n",l_it->first,l_it->second);
    maps.erase(2);                                     //erase();刪完爲2的關鍵字
    l_it=maps.find(2);
    if(l_it==maps.end())
        printf("沒找到\n");
    else
        printf("%d   %c\n",l_it->first,l_it->second);
    for(l_it=maps.begin();l_it!=maps.end();++l_it)   //順序輸出
    {
        printf("%d    %c\n",l_it->first,l_it->second);
    }*/
    //cout<<maps.max_size()<<endl;                    //max_size();
    /*
    map<int,char>::iterator l_it;                      //lower_bound();
    l_it=maps.lower_bound(2);
     printf("%d    %c\n",l_it->first,l_it->second);
     l_it=maps.upper_bound(2);                          //upper_bound();
     printf("%d    %c\n",l_it->first,l_it->second);*/
     multimap<int,char> maps,mapq;             //插入
    maps.insert(make_pair<int,char>(5,'q'));
    maps.insert(make_pair(2,'k'));
    maps.insert(make_pair(4,'g'));
    maps.insert(make_pair(2,'u'));
    maps.insert(make_pair(1,'a'));
    mapq.insert(make_pair(12,'i'));
    mapq.insert(make_pair(43,'l'));
    multimap<int,char>::iterator l_it;
    for(l_it=maps.begin();l_it!=maps.end();++l_it)   //順序輸出
    {
         printf("%d    %c\n",l_it->first,l_it->second);
    }
    printf("------------------------------------------\n");
    maps.swap(mapq);                                //swap();
    for(l_it=maps.begin();l_it!=maps.end();++l_it)   //順序輸出
    {
         printf("%d    %c\n",l_it->first,l_it->second);
    }
    return 0;
}



4,

C++ MultiMaps

C++ Multimaps和maps很相似,但是MultiMaps允許重複的元素。

begin() 返回指向第一個元素的迭代器
clear() 刪除所有元素
count() 返回一個元素出現的次數
empty() 如果multimap爲空則返回真
end() 返回一個指向multimap末尾的迭代器
equal_range() 返回指向元素的key爲指定值的迭代器對
erase() 刪除元素
find() 查找元素
get_allocator() 返回multimap的配置器
insert() 插入元素
key_comp() 返回比較key的函數
lower_bound() 返回鍵值>=給定元素的第一個位置
max_size() 返回可以容納的最大元素個數
rbegin() 返回一個指向mulitmap尾部的逆向迭代器
rend() 返回一個指向multimap頭部的逆向迭代器
size() 返回multimap中元素的個數
swap() 交換兩個multimaps
upper_bound() 返回鍵值>給定元素的第一個位置
value_comp() 返回比較元素value的函數

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章