c++ map

來源:互聯網
上載者:User

標籤:stream   algorithm   關係   技術   erase   for   set   isp   char   

map 容器儲存索引值對,提供了很好的一對一的關係。

在內部,元素總按特定的規則有序,通常用二叉搜尋樹實現。

下面是使用樣本:

#include <cstdio>#include <algorithm>#include <set>#include <map>#include <iostream>using namespace std;int main () {    map<char,int> mymap;    //first insert method    mymap.insert(pair<char,int>(‘a‘,100));    mymap.insert(pair<char,int>(‘z‘,200));    //insert函數的傳回值類型4    pair<map<char,int>::iterator,bool> ret;    ret=mymap.insert(pair<char,int>(‘z‘,500));    if(ret.second==false)    {        cout<<"element ‘z‘ already existed"<<endl;        cout<<"with a value of "<<ret.first->second<<endl;    }    //second insert method    map<char,int>::iterator it=mymap.begin();    mymap.insert(it,pair<char,int>(‘b‘,300));    mymap.insert(it,pair<char,int>(‘c‘,400));    //third insert method    map<char,int> anothermap;    anothermap.insert(mymap.begin(),mymap.find(‘c‘));    cout<<"mymap contains:"<<endl;    for(it=mymap.begin();it!=mymap.end();it++)        cout<<it->first<<" => "<<it->second<<endl;    cout<<"anothermap contains:"<<endl;    for(it=anothermap.begin();it!=anothermap.end();it++)        cout<<it->first<<" => "<<it->second<<endl;    map<char,int> m;    map<char,int>::iterator itlow,itup;    m[‘a‘]=20;    m[‘b‘]=40;    m[‘c‘]=60;    m[‘d‘]=80;    m[‘e‘]=100;    itlow=m.lower_bound(‘b‘);    itup=m.upper_bound(‘d‘);    cout<<itlow->second<<" "<<itup->second<<endl;    m.erase(itlow,itup);    cout<<"m contains:"<<endl;    for(it=m.begin();it!=m.end();it++)        cout<<it->first<<" => "<<it->second<<endl;}

mapmultimap差別僅僅在於其中的 ‘multiple‘——允許一個鍵對應多個值。

多維map

 好像之前發過這題

#include <cstdio>#include <algorithm>#include <set>#include <map>#include <iostream>#include <string>using namespace std;map<string,string> m;int main (){    string t;    cin>>t;    string k,v;    while(true)    {        cin>>v;        if(v=="END") break;        cin>>k;        m[k]=v;    }    cin>>t;    string text;    getline(cin,text);    while(1)    {        getline(cin,text);        if(text=="END") break;        int i=0;        while(i<text.length())        {            string word="";            while(text[i]>=65&&text[i]<=90||text[i]>=97&&text[i]<=122)            {                word+=text[i];                i++;            }            if(!(text[i]>=65&&text[i]<=90||text[i]>=97&&text[i]<=122))            {                i++;            }            if(m.count(word))            {                string new_word=m[word];                int sub=new_word.length()-word.length();                i+=sub;                text.replace(text.find(word),word.length(),new_word);            }        }        cout<<text<<endl;    }    return 0;}
View Code

 

c++ map

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.