STL系列(8): Sets & MultiSets

来源:互联网 发布:淘宝达人登录 编辑:程序博客网 时间:2024/06/06 01:37

集合(Set)是一种包含已排序对象的关联容器。多元集合(MultiSets)和集合(Sets)相像,只不过支持重复对象,其用法与set基本相同。 

1.begin() 返回指向第一个元素的迭代器 

2.clear() 清除所有元素 

3.count() 返回某个值元素的个数

4.empty() 如果集合为空,返回true 

5.end() 返回指向最后一个元素的迭代器

6.equal_range() 返回第一个>=关键字的迭代器和>关键字的迭代器 
语法: 
pair <iterator,iterator>equal_range( const key_type &key ); //key是用于排序的关键字 Set<int> ctr; 例如: 
Pair<set<int>::iterator,set<int>::iterarot>p; For(i=0;i<=5;i++) ctr.insert(i); P=ctr.equal_range(2); 
那么*p.first==2;*p.second==3; 

7.erase() 删除集合中的元素 
语法: 
iterator erase( iterator i ); //删除i位置元素 

iterator erase( iterator start, iterator end );  //删除从start开始到end(end为第一个不被删除的值)结束的元素 

size_type erase( const key_type &key ); //删除等于key值的所有元素(返回被删除的元素的个数)

 //前两个返回第一个不被删除的双向定位器,不存在返回末尾 //第三个返回删除个数 

8.find() 返回一个指向被查找到元素的迭代器 
语法: 
iterator find( const key_type &key ); 
//查找等于key值的元素,并返回指向该元素的迭代器; //如果没有找到,返回指向集合最后一个元素的迭代器 

9.get_allocator() 返回集合的分配器 

10.insert() 在集合中插入元素 
语法: 
iterator insert( iterator i, const TYPE &val ); //在迭代器i前插入

val void insert( input_iterator start, input_iterator end ); //将迭代器start开始到end(end不被插入)结束返回内的元素插入到集合中 

pair insert( const TYPE &val ); 
//插入val元素,返回指向该元素的迭代器和一个布尔值来说明val是否成功被插入 //应该注意的是在集合(Sets中不能插入两个相同的元素) 

11.lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器 
语法: 
iterator lower_bound( const key_type &key ); //返回一个指向大于或者等于key值的第一个元素的迭代器 

12.key_comp() 返回一个用于元素间值比较的函数 
语法: 
key_compare key_comp(); //返回一个用于元素间值比较的函数对象 

13.max_size() 返回集合能容纳的元素的最大限值 

14.rbegin() 返回指向集合中最后一个元素的反向迭代器 
示例: 
Set<int> ctr; 
Set<int>::reverse_iterator rcp; 
For(rcp=ctr.rbegin();rcp!=ctr.rend();rcp++) Cout<<*rcp<<” ”; 

15.rend() 返回指向集合中第一个元素的反向迭代器  

16.size() 集合中元素的数目 

17.swap() 交换两个集合变量 
语法: 
void swap( set &object ); //交换当前集合和object集合中的元素 

18.upper_bound() 返回大于某个值元素的迭代器 
语法: 
iterator upwer_bound( const key_type &key ); 
//返回一个指向大于key值的第一个元素的迭代器 

19.value_comp() 返回一个用于比较元素间的值的函数 
语法: 
iterator upper_bound( const key_type &key );//返回一个用于比较元素间的值的函数对象

0 0