map 對象
鍵和值的類型 例如
#include <map>
map<string, int> *word_count;
定義了map 對象word_count 它由string 作爲索引 並擁有一個相關的int 值。
下標操作符給出了獲取一個值的最簡單方法 例如
// map<string,int> word_count;
int count = word_count[ "wrinkles" ];
但是 只有當map 中存在這樣一個鍵的實例時 該代碼纔會表現正常 如果不存在這樣的實例 使用下標操作符會引起插入一個實例 在本例中 鍵/值對 string( "wrinkles" ), 0
被插入到word_count 中 count 被初始化爲0 有兩個map 操作能夠發現一個鍵元素是否存在 而且在鍵元素不存在時也不會引起插入實例
1 Count(keyValue) count()返回map 中keyValue 出現的次數 當然 對於map 而言 返回值只能是0 或1 如果返回值非0 我們就可以安全地使用下標操作符 例如
int count = 0;
if ( word_count.count( "wrinkles" ))
count = word_count[ "wrinkles" ];
2 Find(keyValue) 如果實例存在 則find()返回指向該實例的iterator 如果不存在則返回等於end()的iterator 例如
int count = 0;
map<string,int>::iterator it = word_count.find( "wrinkles" );
if ( it != word_count.end() )
count = (*it).second;