C++细节5
2015-06-11 11:40
295 查看
<map>
是键值对的集合,唯一的约束是键类型必须支持 < 操作符。
map<k,v>::key_type 键类型
map<k,v>::mapped_type 关联值类型
map<k,v>::value_type pair<k,v>类型
与vector不同的是用下标访问不存在的元素将导致在map容器中添加一个新的元素,它的键即为下标值
带有一个键-值的insert版本将返回一个值:包含一个迭代器和一个bool值的pair对象,其中迭代器指向map中具有相应键的元素,而bool值则表示是否插入了该元素。若该键已在容器中,则其关联的值保持不变,返回的bool值为false;如果该键不在容器中则插入新元素,且bool值为true。
//单词统计程序
map<string, int> word_count;
string word;
while(cin>>word)
{
pair<map<string, int>::iterator, bool> ret =
word_count.insert(make_pair(word,1));
if(!ret.second)
++ret.first->second;
}
查找并读取map中的元素
1、count
//
int occurs = 0;
if(word_count.count ("foor_bar") )
occurs = word_count["foor_bar"];
2、find
//
int occurs = 0;
map<string, int>::iterator it = word_count.find("foorbar");
if(it != word_count.end())
occurs = it -> second;
使用迭代器遍历map容器时,迭代器指向的元素按键顺序的升序排列。
是键值对的集合,唯一的约束是键类型必须支持 < 操作符。
map<k,v>::key_type 键类型
map<k,v>::mapped_type 关联值类型
map<k,v>::value_type pair<k,v>类型
与vector不同的是用下标访问不存在的元素将导致在map容器中添加一个新的元素,它的键即为下标值
带有一个键-值的insert版本将返回一个值:包含一个迭代器和一个bool值的pair对象,其中迭代器指向map中具有相应键的元素,而bool值则表示是否插入了该元素。若该键已在容器中,则其关联的值保持不变,返回的bool值为false;如果该键不在容器中则插入新元素,且bool值为true。
//单词统计程序
map<string, int> word_count;
string word;
while(cin>>word)
{
pair<map<string, int>::iterator, bool> ret =
word_count.insert(make_pair(word,1));
if(!ret.second)
++ret.first->second;
}
查找并读取map中的元素
1、count
//
int occurs = 0;
if(word_count.count ("foor_bar") )
occurs = word_count["foor_bar"];
2、find
//
int occurs = 0;
map<string, int>::iterator it = word_count.find("foorbar");
if(it != word_count.end())
occurs = it -> second;
使用迭代器遍历map容器时,迭代器指向的元素按键顺序的升序排列。
相关文章推荐
- C++ 迭代器(iterator)
- Google C++编程风格
- smo算法的c++实现
- C++中的virtual
- 【C语言】使用ODBC连接Microsoft SQL server数据库
- C/C++时间函数的使用
- c++STL的迭代器
- C语言详解 - 枚举类型
- Leetcode Problem.—Rotate List C++实现
- C语言-Makefile经典教程(掌握这些足够)
- C语言运算符优先级 详细列表
- LeetCode 之 Valid Parentheses — C++ 实现
- LeetCode 之 Longest Common Prefix — C++实现
- C++派生类的成员标识与访问
- C++多重继承
- C++类的继承和派生,访问控制
- C++ 参数传递方式
- 《C++ primer》第五版 第十章 笔记
- C++ 10.3.6 查找并读取map中的元素
- vc++ 各种类型转换