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;