映射
簡介
又稱關聯陣列,按照特定順序存儲由鍵值(key)和映射值(value)組合而成的元素,可以想成 key 值允許用其他型態的陣列。
標頭檔
宣告
type1, type2 可為 int, char, string…,mp可為任意名字。
常用操作
| 函數 | 
描述 | 
| insert() | 
插入指定元素 | 
| erase() | 
刪除指定元素 | 
| clear() | 
刪除所有元素 | 
| count() | 
回傳元素是否存在 | 
| find() | 
回傳指向該元素的迭代器 | 
| empty() | 
回傳是否為空 | 
| size() | 
回傳有幾個元素 | 
插入元素
分為兩種方法,一種是以陣列方式直接插入,若該 key 值已經存在,則 value 會更新成新的數值。
    
    
        1 2 3 4
   | mp["kirito"] = 10; mp["asuna"] = 16; mp["rem"] = 520; mp["kirito"] = 48763; 
   | 
  
      
     
另一種則是使用 insert() 函數,把 key 值和 value 值包裝成一個 pair 的形式插入。和陣列插入不一樣的是,若該 key 值已經存在,則不插入,回傳一個指向該元素的迭代器。
    
    
        1 2 3 4
   | mp.insert(pair<string, int>("kirito", 10)); mp.insert(pair<string, int>("asuna", 16)); mp.insert(pair<string, int>("rem", 520)); mp.insert(pair<string, int>("kirito", 48763)); 
  | 
  
      
     
範例
    
    
        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
   | #include <iostream> #include <map> using namespace std;
  int main(){     map<string, int> mp;     mp["克萊茵"] = 10;     mp["asuna"] = 16;     mp.insert(pair<string, int>("rem", 520));     mp.insert(pair<string, int>("桐谷和人", 48763));     cout << "目前元素個數為 " << mp.size() << "\n";     cout << "此元素的value為 " << mp.find("克萊茵")->second << "\n";      mp.erase("克萊茵");      cout << "此元素的value為 " << mp.find("克萊茵")->second << "\n";      for(auto it = mp.begin(); it != mp.end(); ++it){          cout << it -> first << " " << it -> second << "\n";     }     mp.clear();      cout << "是否為空 " << mp.empty() << "\n";
      return 0; }
   | 
  
      
     
    
    
        目前元素個數為 4
此元素的value為 10
此元素的value為 17377760
asuna 16
rem 520
桐谷和人 48763
是否為空 1
 
      
     
參考資料:cplusplus.com