map
|
关联数组:元素通过键来存储和读取
|
set
|
大小可变的集合,支持通过键实现的快速读取
|
multimap
|
支持同一个键多次出现的map类型
|
multiset
|
支持同一个键多次出现的set类型
|
pair<T1, T2> p1;
|
创建一个空的pair对象,它的两个元素分别是T1和T2类型,采用值初始化
|
pair<T1, T2> p1(v1, v2);
|
创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v1,second成员初始化为v2
|
make_pair(v1, v2)
|
以v1和v2值创建一个新的pair对象,其元素类型分别是v1和v2的类型
|
p1 < p2
|
字典次序:如果p1.first<p2.first或者!(p2.first < p1.first)&& p1.second<p2.second,则返回true
|
p1 == p2
|
如果两个pair对象的first和second成员依次相等,则这两个对象相等。
|
p.first
|
返回p中名为first的(公有)数据成员
|
p.second
|
返回p中名为second的(公有)数据成员
|
map<K, V>::key_type
|
在map容器内,用做索引的键的类型
|
map<K, V>::mapped_type
|
在map容器中,键所关联的值的类型
|
map<K, V>::value_type
|
map
的值类型:一个pair类型,它的first元素具有 const map<K, V>::key_type类型,而second元素 则为map<K, V>::mapped_type类型 |
map<K, V> m
|
创建一个名为m的空map对象,其键和值的类型分别为K和V
|
map<K,V>m(m2)
|
创建m2的副本m,m与m2必须有相同的键类型和值类型
|
map<k, V> m(b, e)
|
创建map类型的对象m,存储迭代器b和e标记的范围内所有元素的副本。元素的类型必须能转换为pair<const k, v>
|
A::reference operator[](const Key& key);
|
#include <iostream> #include <map> using namespace std; int main() { map<string, int> wordCount; string word; while (cin >> word) ++wordCount[word]; for (map<string, int>::iterator it = wordCount.begin(); it != wordCount.end(); ++it) cout<<"Word: "<<(*it).first<<" /tCount: "<<(*it).second<<endl; return 0; } |
m.insert(e)
|
e
是一个用在m上的value_type类型的值,如果键(e.first)不在m中,则插入e到m中;如果键已经在m中存在,则保持m不变。 该函数返回一个pair类型对象,如果发生了插入动作,则返回pair(it, true);否则返回pair(it, false)。其中,it是指向键为e.first那个元素的迭代器。 |
m.insert(beg, end)
|
beg
和end是标记元素范围的迭代器,其中的元素必须为value_type类型的键-值对。对于该范围内的所有元素,如果它的键在m中不存在,则将该键及其关联的值插入到m。返回void类型。
|
m.insert(iter, e)
|
insert(e)
,并以iter为起点搜索新元素的位置。返回一个迭代器,指向m中键为e.first的元素。
|
m.count(k)
|
返回m中k的出现次数(0或1)
|
m.find(k)
|
如果容器中存在键为k的元素,则返回指向该元素的迭代器。 如果不存在,则返回end()值。 |
m.erase(k)
|
删除m中键为k的元素,返回size_type类型的值,表示删除的元素个数(0或1)
|
m.erase(p)
|
从m中删除迭代器p所指向的元素。p必须指向m中确实存在的元素,而且不能等于e.end()。返回void类型
|
m.erase(b, e)
|
从m中删除[b, e)范围内的元素,返回void类型
|
m.lower_bound(k)
|
返回一个迭代器,指向键小于k的第一个元素
|
m.upper_bound(k)
|
返回一个迭代器,指向键大于k的第一个元素
|
m.equal_range(k)
|
返回一个迭代器的pair对象;它的first成员等价于 m.lower_bound(k),而second成员则等价于 m.upper_bound(k) |