STL组件——容器(关联容器)
关联容器(set、map、multiset、multimap) Set(multiset元素值可以重复)key为元素 set的内部元素根据其值自动排序 每个元素值只能出现一次 不可重复(multset相反)1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取
·
关联容器(set、map、multiset、multimap)
Set(multiset元素值可以重复)
key为元素 set的内部元素根据其值自动排序 每个元素值只能出现一次 不可重复(multset相反)
1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素
2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数
3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)
typedef set<char> CharSet;
CharSet se;
se.insert('s');
CharSet::iterator it=se.begin();//定义迭代器
for(;it!=se.end();it++)
{
printf("%c\n",*it);
}
set成员函数:
begin() | 返回指向第一个元素的迭代器 |
clear()
| 清除所有元素 |
count() | 返回某个值元素的个数 |
empty() | 如果集合为空,返回true(真) |
end()
| 返回指向最后一个元素之后的迭代器,不是最后一个元素 |
equal_range() | 返回集合中与给定值相等的上下限的两个迭代器 |
erase() | 删除集合中的元素 |
find() | 返回一个指向被查找到元素的迭代器 |
get_allocator()
| 返回集合的分配器 |
insert() | 在集合中插入元素 |
lower_bound() | 返回指向大于(或等于)某值的第一个元素的迭代器 |
key_comp()
| 返回一个用于元素间值比较的函数 |
max_size() | 返回集合能容纳的元素的最大限值 |
rbegin()
| 返回指向集合中最后一个元素的反向迭代器 |
rend() | 返回指向集合中第一个元素的反向迭代器 |
size() | 集合中元素的数目 |
swap() | 交换两个集合变量 |
upper_bound()
| 返回大于某个值元素的迭代器 |
value_comp()
| 返回一个用于比较元素间的值的函数 |
map(multimap key可以重复)
不可有重复的key
typedef map<int,string> M;
M ma;
ma[0]= "我是第零位";
ma[1]= "我是第壹位";
ma[2]= "我是第贰位";
M::iterator it=ma.begin();//定义迭代器
for(;it!=ma.end();it++)
printf("%d:%s\n",it->first,it->second.c_str());
成员方法:
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的函数
更多推荐
已为社区贡献6条内容
所有评论(0)