C++ Sets
集合(Set)是一种包含已排序对象的关联容器
set insert 将x插入到容器当中自动递增排序并去重
返回指向第一个元素的迭代器 |
|
清除所有元素 |
|
返回某个值元素的个数 |
|
如果集合为空,返回true
扫描二维码关注公众号,回复:
3989611 查看本文章
|
|
返回指向最后一个元素的迭代器 |
|
返回集合中与给定值相等的上下限的两个迭代器 |
|
删除集合中的元素 |
|
返回一个指向被查找到元素的迭代器 |
|
返回集合的分配器 |
|
在集合中插入元素 |
|
返回指向大于(或等于)某值的第一个元素的迭代器 |
|
返回一个用于元素间值比较的函数 |
|
返回集合能容纳的元素的最大限值 |
|
返回指向集合中最后一个元素的反向迭代器 |
|
返回指向集合中第一个元素的反向迭代器 |
|
集合中元素的数目 |
|
交换两个集合变量 |
|
返回大于某个值元素的迭代器 |
|
返回一个用于比较元素间的值的函数 |
#include <iostream>
#include <cstdio>
#include <set>
using namespace std;
int main(int argc, char const *argv[]) {
set<int> st;
//向st中输入数值
for(int i:{1,4,5,6,9})
st.insert(i);
printf("for(int i:{1,4,5,6,9})st.insert(i):");
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
//find()返回一个指向被查找到元素的迭代器
cout << "set<int>::iterator j = st.find(5):";
set<int>::iterator j = st.find(5);
cout << *j << "\n";
//erase()删除集合中的元素--删除元素的迭代器
set<int>::iterator i;
cout << "for(i = st.begin();i != st.end();i++)if(*i == 4)st.erase(i):";
for(i = st.begin();i != st.end();i++)
if(*i == 4)st.erase(i);
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
cout << "st.erase(st.find(1)):";
st.erase(st.find(1));
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
cout << "st.erase(5):";
st.erase(5);
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
//向st中输入数值
//原容器中有6和9--set容器会自动去重
for(int i:{1,4,5,6,9})
st.insert(i);
printf("for(int i:{1,4,5,6,9})st.insert(i):");
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
//向st中插入2
//set容器会自动递增排序
cout << "st.insert(2):";
st.insert(2);
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
//删除2 - 6之前一个元素
cout << "st.erase(fi,fj):";
set<int>::iterator fi = st.find(2);
set<int>::iterator fj = st.find(6);
st.erase(fi,fj);
for(auto i:st)
printf("%d%c",i," \n"[i == 9]);
//size()集合中元素的数目
cout << "st.size():";
cout << st.size() << "\n";
return 0;
}