如何使用 stl 的 map 型態

有關於C/C++的語法, 程式等
回覆文章
頭像
tim
文章: 1318
註冊時間: 2008年 11月 26日, 00:49

如何使用 stl 的 map 型態

文章 tim » 2008年 11月 27日, 16:44

在資料結構中, 我們常會用到一種 string mapping array 的結構, 但在 vc++ 中如何實作或有類似的結構可用呢, 在 stl 裡有個 map 的型態, 相當容易使用, 以下為介紹.

map 宣告需要兩種 class 對應, 若是要做 string mapping array 的話, 就宣告為

map<string, string>

即可, 接下來可以應用 insert 方法, 將資料存入, 另外還有更方便的方法, 就是利用 [] oprator, 以下為一個 sample code,

代碼: 選擇全部

     
    #include <string> 
    #include <map> 
    ... 
      map<string, string> m1; 
      map<string, string>::iterator mp; 
       
      pair<string, string> p1;   
       
      p1.first = "a"; 
      p1.second = "1";   
      m1.insert(p1);   
       
      p1.first = "b"; 
      p1.second = "2"; 
      m1.insert(p1);   
       
     
      m1["c"]="3"; 
      m1["d"]="4"; 
       
     
      MessageBox(m1["b"].c_str()); 
       
     
      string out; 
      for(mp=m1.begin();mp!=m1.end();mp++) 
      { 
        out = out + mp->first + "=" + mp->second + "n"; 
         
      } 
         
      MessageBox(out.c_str()); 




特別要注意的地方是, 若是使用 m1["ab"] 來找資料時, 若資料不存在, 該 map 仍會自行寫入一筆 ab="" 的資料哦!
這個 map 型態真的很好用哦!

執行結果,
13_12.png
13_12.png (2.17 KiB) 已瀏覽 3496 次
多多留言, 整理文章, 把經驗累積下來.....

回覆文章