set之存储了一个键值, 而map存储了两个相关联的键值(和pair类似),
他们都是用树来实现的,二叉搜索树和红黑树
但要注意:set中
set是C++标准库中的一种关联容器。所谓关联容器就是通过键(key)来读取和修改元素。与map关联容器不同,它只是单纯键的集合。
特性编辑
set容器的每一个键只能对应一个元素,即不存在键相同的不同元素。
//@auther Yang Zongjun
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <set>
using namespace std;
#define PI acos(-1.0)
#define EPS 1e-8
const int MAXN = 1100000;
const int INF = 2100000000;
int main()
{
//freopen("C:/Users/Administrator/Desktop/input.txt", "r", stdin);
set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
set<int>::iterator ite;
ite = s.find(1);
if(ite == s.end()) puts("no found");
else puts("found");
ite = s.find(2);
if(ite == s.end()) puts("no found");
else puts("found");
s.erase(3);
if(s.count(3) != 0) puts("found");
else puts("found");
for(ite = s.begin(); ite != s.end(); ite++)
{
printf("%d\n", *ite);
}
return 0;
}
运行结果
//@auther Yang Zongjun
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <set>
using namespace std;
#define PI acos(-1.0)
#define EPS 1e-8
const int MAXN = 1100000;
const int INF = 2100000000;
int main()
{
//freopen("C:/Users/Administrator/Desktop/input.txt", "r", stdin);
set<int> s;
//s.insert(1);
s.insert(2);
s.insert(3);
s.insert(1);
s.insert(1);
//set<int>::iterator ite;
/*if(s.find(1))
cout << "aaa" << endl;*/
cout << s.count(1) << endl;
cout << s.count(2) << endl;
cout << s.count(3) << endl;
cout << s.count(4) << endl;
cout << *s.find(1) << endl;
return 0;
}
运行结果: