set::begin
const_iterator begin() const;
terator begin() ;
功能:
返回第一个元素的双向定位器(iterator)的地址。
说明:
当返回的第一个元素的地址值为一个常值定位器(_iterator),则set不会被修改。
当返回的第一个元素的地址值为一个定位器(iterator),则set可被修改。
set:: clear
功能:
将一个set容器的全部元素删除。
用法:
void clear();
set::count
size_type count(const Key& _key) const;
_Key是要进行匹配的关键字的值
函数返回值:
返回关键字_Key的元素的个数
set::empty
功能:
测试一个set容器是否为空
语法:
bool empty() const;
当set为空时,返回true,否则返回 false。
set:: end
功能:
返回最后一个元素 后面的定位器(iterator)的地址
语法:
const_iterator end() const;
iterator end();
equal_range
功能:
返回一对定位器。 它们分别指向
第一个 >= 给定关键字的元素
&
第一个 > 给定关键字的元素
语法:
pair<const_iterator, const_iterator> equal_range (const Key &_key) const;
pair<iterator, iterator> equal_range(const Key &_key) const;
【要从第一个定位器中取得数据,可用 pr.first
要从第二个定位器中取得数据,则用 pr.second】
ex
:
//先初始化一个set,再打印出其中的内容,最后打印出关键字 >= 2 and >2 的元素
#include<set>
#include <IOSTREAM>
using namespace std;
int print(set<int> c)
{
set<int>:: const_iterator cp;
for(cp = c.begin(); cp != c.end(); cp++)
cout<<*cp<<" ";
return 0;
}
int main()
{
set<int> ctr;
pair<set<int>::const_iterator, set<int>::const_iterator> p;
int i;
for(i = 0; i<= 3; i++)
ctr.insert(i);
if(!ctr.empty()) //如果set容器不为空,打印
{
cout<<"The ctr is: "<<endl;
print(ctr);
}
cout<<endl;
p = ctr.equal_range(2);
if(p.first != ctr.end())
{
cout<<"The first element which key >= 2 is:";
cout<<*p.first;
cout<<endl;
}
if(p.second != ctr.end())
{
cout<<"The first element which key > 2 is:";
cout<< *p.second;
cout<<endl;
}
ctr.clear();
if(ctr.empty())
{
cout<<"Now , clear!"<<endl;
}
return 0;
}
restult: