1.存入set中的元素是排列好的且没有重复的元素。
int main()
{
ios
s.insert('0');//插入
s.insert('1');
s.insert('2');
if(s.count('0'))//查询
cout << 0 << endl;
if(s.erase('0'))//删除
{
cout << "N0" << endl;
}
return 0;
}
迭代器output
int main()
{
ios
for(int i = 1; i <= 10; i++)
s.insert(i);
for(set<int>::iterator it = s.begin(); it != s.end();it++)
cout << *it <<endl;///*访问it中的元素
return 0;
}
3.插入和删除都是logn因为它跟二叉树相关,是一个红黑树的内部结构。
4.重载运算符 对于结构体,需要重载运算符才能实现set中的排序。
struct Node///从小到大排序
{
int x, y;
bool operator<(const Node &rhs) const
{
if(x == rhs.x)
{
return y < rhs.y;
}
else return x < rhs.x;
}
};
int main()
{
ios
int n;
set<Node> v;
cin >> n;
for(int i = 0; i < n; i++)
{
Node temp;
cin >> temp.x >> temp.y;
v.insert(temp);
}
for(set<Node>::iterator it = v.begin(); it != v.end(); it++)
cout << it -> x << ' ' << it -> y<< endl; ///*访问it中的元素
return 0;
}