一、简介
集合(Set)是一种包含已排序对象的关联容器,不允许有重复元素。
返回指向第一个元素的迭代器 | |
清除所有元素 | |
返回某个值元素的个数 | |
如果集合为空,返回true | |
返回指向最后一个元素的迭代器 | |
返回集合中与给定值相等的上下限的两个迭代器 | |
删除集合中的元素 | |
返回一个指向被查找到元素的迭代器 | |
返回集合的分配器 | |
在集合中插入元素 | |
lower_bound() | 返回指向大于(或等于)某值的第一个元素的迭代器 |
返回一个用于元素间值比较的函数 | |
返回集合能容纳的元素的最大限值 | |
返回指向集合中最后一个元素的反向迭代器 | |
返回指向集合中第一个元素的反向迭代器 | |
集合中元素的数目 | |
交换两个集合变量 | |
返回大于某个值元素的迭代器 | |
返回一个用于比较元素间的值的函数 |
二、完整程序代码
/*请务必运行以下程序后对照阅读*/
#include <set>
#include <iostream>
using namespace std;
int main()
{
///1. 初始化
set<int> num;
set<int>::iterator iter;
cout << num.max_size() << endl;///set容纳上限
cout << endl;
///2. 添加元素
for (int i = 0; i < 10; i++)
num.insert(i);
cout << num.size() << endl;
cout << endl;
///3. 遍历
///不同于map,set容器不提供下标操作符
for (iter = num.begin(); iter != num.end(); iter++)
cout << *iter << " " ;
cout << endl;
cout << endl;
///4. 查询
iter = num.find(1);
if (iter != num.end())
cout << *iter << endl;
else
cout << -1 << endl;
iter = num.find(99);
if (iter != num.end())
cout << *iter << endl;
else
cout << -1 << endl;
cout << endl;
///5. 删除
iter = num.find(1);
num.erase(iter);
cout << num.size() << endl;
for (iter = num.begin(); iter != num.end(); iter++)
cout << *iter << " " ;
cout << endl;
cout << endl;
///6. 判空与清空
if (!num.empty())
num.clear();
}
三、补充
map容器是键-值对的集合,好比以人名为键的地址和电话号码。相反地,set容器只是单纯的键的集合。当我们想知道某位用户是否存在时,使用set容器是最合适的。