由于set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的数据结构,再插入元素时,会自动调整二叉树的排列,
1.每个子树根节点的键值大于左子树的所有节点的键值,而小于右子树所有节点的键值
2.set集合内没有重复元素 ,只是对重复元素进行忽略处理,(multiset可以插入重复元素)
3.平衡二叉树采用中序遍历算法,于是,遍历时将键值由小到大排序
4.可以把平衡二叉树理解为:对其进行插入操作时,会自动将元素按键值由小到大排序
5.** 对于set容器中的键值,不要随意修改,因为修改后,二叉树将会进行自动调整,使新修改的键值很可能不再原来的位置上**

#include<iostream>
#include<set>
using namespace std;
int main(int argc,char *argv[]){
	set<int> s;//创建一个int型的set集合 
	s.insert(1);
	s.insert(8);
	s.insert(3);
	s.insert(1);//因为前面插入了1,所以这行代码会被忽略 
	
	set<int>::iterator it;//定义前向迭代器用于遍历,应为对平衡二叉树遍历,实质是中序遍历算法
	for(it=s.begin();it!=s.end();it++){
		cout<<*it<<" ";
	} 
	cout<<endl;//回车 
	return 0;
} 
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐