1.头文件
#include<set>
2.集合的输入 insert()
int n;cin>>n; //个数
int num;
set<int>A;
while(n--){
cin>>num;
A.insert(num); //插入元素
}
3.vector 和vector::iterator 的不同
1.verctor是声明向量容器; 例如 verctor v,就是创建了一个名字叫v的向量容器。
2.vector::iterator是定义向量迭代器 例如,
vector::iterator it 就可以
for(it=v.begin();it!=v.end();it++)
cout<<*it<<endl; 就把里面的内容都输出了
同理,集合是set< int>::iterator
set<int>::iterator it;
for(it=A.begin();it!=A.end();it++){
cout<<*it<<endl;
}
4.有序不重复
原文链接
#include<stdio.h>
#include<set>
using namespace std;
int main()
{
set<int>s;
s.insert(3);
s.insert(1);
s.insert(2);
s.insert(1);
set<int>::iterator it;
for(it=s.begin();it!=s.end();it++) //使用迭代器进行遍历
{
printf("%d\n",*it);
}
return 0;
}
//输出结果 : 1 2 3 一共插入了4个数,但是集合中只有3个数并且是有序的,
//可见之前说过的set集合的两个特点,有序和不重复。
5.当set集合中的元素为结构体时,该结构体必须实现运算符‘<’的重载
#include<stdio.h>
#include<set>
#include<string>
using namespace std;
struct People
{
string name;
int age;
bool operator <(const People p) const //运算符重载
{
return age<p.age; //按照年龄由小到大进行排序
}
};
int main()
{
set<People>s;
s.insert((People){"张三",14});
s.insert((People){"李四",16});
s.insert((People){"王二麻子",10});
set<People>::iterator it;
for(it=s.begin();it!=s.end();it++) //使用迭代器进行遍历
{
printf("姓名:%s 年龄:%d\n",(*it).name.c_str(),(*it).age);
}
return 0;
}
/*
输出结果
姓名:王二麻子 年龄:10
姓名:张三 年龄:14
姓名:李四 年龄:16
*/
结果是按照年龄由小到大的顺序排列。
6.用法
begin(); // 返回指向第一个元素的迭代器
end(); // 返回指向最后一个元素的迭代器
clear(); // 清除所有元素
count(); // 返回某个值元素的个数
empty(); // 如果集合为空,返回true
equal_range(); //返回集合中与给定值相等的上下限的两个迭代器
erase()–删除集合中的元素
find()–返回一个指向被查找到元素的迭代器
get_allocator()–返回集合的分配器
insert()–在集合中插入元素
lower_bound()–返回指向大于(或等于)某值的第一个元素的迭代器
key_comp()–返回一个用于元素间值比较的函数
max_size()–返回集合能容纳的元素的最大限值
rbegin()–返回指向集合中最后一个元素的反向迭代器
rend()–返回指向集合中第一个元素的反向迭代器
size()–集合中元素的数目
swap()–交换两个集合变量
upper_bound()–返回大于某个值元素的迭代器
value_comp()–返回一个用于比较元素间的值的函数
代码
#include<iostream>
#include<set> //集合
using namespace std;
int main(){
int n;cin>>n; //个数
int num;
set<int>A;
//输入
while(n--){
cin>>num;
A.insert(num); //插入元素
}
//输出
set<int>::iterator it;
for(it=A.begin();it!=A.end();it++){
cout<<*it<<endl;
}
}

1143

被折叠的 条评论
为什么被折叠?



