很多時候我們需要用「一種資料」去查另外一種「對應的資料」,這時候就是map上場的時候了,有些程式語言稱為dictionary,顧名思義就是查字典的意思。使用一個"key"去找對應的"value"。
注意key可以是任何的資料形態,value也是,以下是一個簡單的範例程式,包含:
- setter:設定新的項目
- getter:取得已存的項目,若不存在會回傳0,並被加入map中
- is not found:檢查該key有無存在在map中
- wall through:走過所有map中的項目
#include <cstdio> #include <map> #include <iostream> using namespace std; int main(){ map<char, int> myMap; map<char, int>::const_iterator iter; // setter myMap['h']=2; myMap['e']=3; // getter printf("%d\n", myMap['h']); //2 printf("%d\n", myMap['e']); //3 printf("%d\n", myMap['r']); //0, not exist // check if exsit int isNotFound; isNotFound = ( myMap.find('z') == myMap.end() ); printf("%c\n", (isNotFound)?'y':'n'); // y isNotFound = ( myMap.find('e') == myMap.end() ); printf("%c\n", (isNotFound)?'y':'n'); // n // walk through all elements in map for(iter = myMap.begin() ; iter != myMap.end() ; iter++) printf("- %c:%d\n", iter->first, iter->second); return 0; }
No comments:
Post a Comment