您的位置:首页 > 编程语言 > C语言/C++

C++ STL, set用法。 待更新zzzzz

2016-03-29 13:37 447 查看
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。
平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。
构造set集合主要目的是为了快速检索,不可直接去修改键值。


说白了就是一个容器,用来存放数据,以二叉搜索树的形式存放。没有重复元素。

使用set需要声明#include“set”

主要功能如下:

insert()    ,插入一个元素

clear()    ,删除set容器中的所有的元素

empty()    ,判断set容器是否为空

size()      ,返回当前set容器中的元素个数

count()    ,用来查找set中某个键值出现次数。

[b]find() ,返回给定值值得定位器,如果没找到则返回end()[/b]

[b]erase(i)     ,删除定位器iterator指向的值[/b]



#include"iostream"
#include"set"
using namespace std;
int main(){
set<int> s;                    //创建一个int类型的set
set<int>::iterator it;      //创建一个它对应的迭代器

for(int i=0;i<10;i++){        // 插入0-9;
s.insert(i);
}

if(s.empty())                //empty判断set是否为空,如果为空返回true
cout<<"s为空"<<endl;
else
cout<<"s不为空"<<endl;

cout<<"set容器元素个数为"<<s.size()    <<endl;

cout<<"1出现的次数"<<s.count(1)<<endl;
cout<<"10出现的次数"<<s.count(10)<<endl;

s.erase(5);                                    //删除某个元素
cout<<"5出现的次数"<<s.count(5)<<endl;

it=s.find(4);                                        //查找数据,find,如果没有找到,迭代器end,如果找到,为找到的数据
if(it!=s.end())
cout<<*it<<endl;

for (it = s.begin(); it!= s.end(); ++it){  //遍历数据,用迭代器遍历数据

cout << *it << endl;
}
return 0;
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: