全部博文(842)
分类: C/C++
2013-07-26 17:51:13
原文地址:Essential C++ 读书笔记(四) 作者:jerry20000
一,map
A map is defined as a pair of values: a key, typically a string that serves as an index and a value associated with that key. A dictionary is one example of a map. A program
analyzing the occurrence count of words in a text keeps a map with a string key and an integer value representing an occurrence count.//常见的定义是:map
string 表示字符值,int表示这个值在这个map中出现的次数。
1, 插入数据
(1) my_Map["a"] = 1;
(2) my_Map.insert(map
(3) my_Map.insert(pair
(4) my_Map.insert(make_pair
2, 查找数据
find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
map
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<
3, 删除数据
(1) my_Map.erase(my_Itr);
(2) my_Map.erase("c");
还是注意,第一种情况在迭代期间是不能被删除的,道理和foreach时不能删除元素一样。
4, 迭代数据
for (my_Itr=my_Map.begin(); my_Itr!=my_Map.end(); ++my_Itr) {}
5, 基本操作函数
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数
二,set
通常,set中的元素按从小到大的顺序排列,例如,若有
int ia[10] = { 1, 3, 5, 8, 5, 3, 1, 5, 8, 1 } ;
vector
set
iset中的包含元素:{1,3,5,8}.//不允许元素重复
单个元素的插入可用insert() :
iset.insert(ival);
一系列的元素插入可用带两个参数的insert():
iset.insert(vec.begin(), vec.end());
迭代
set
for (; it != iset.end(); ++it)
cout << *it << ' ';
cout << endl;
更多关于set方法可以参考: