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]
平衡二叉检索树使用中序遍历算法,检索效率高于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; }
相关文章推荐
- C语言技巧:怎样把数组作为参数传递给函数?
- 复利计算C语言转java的相关代码
- C++的那些事:流与IO类
- C++类成员的初始化
- 2016第七届蓝桥杯C/C++ B组省赛第三题:凑算式
- if括号中的潜规则
- c++primer(第五版) 第十三章 拷贝控制习题答案
- C语言中的static
- 2016第七届蓝桥杯C/C++ B组省赛第二题:生日蜡烛
- C++简单的图存储
- 一组整数的全排列【C程序】
- C++异常抛出与捕获及处理
- 2016第七届蓝桥杯C/C++ B组省赛第一题:煤球数目
- C++模板快速排序和Stooge排序
- c语言把一个数组里面的部分值直接复制到另外一个数组
- Leetcode 14. Longest Common Prefix
- C++杂谈(一)const限定符与const指针
- C++继承详解
- C语言位运算符:与、或、异或、取反、左移和右移
- Eclipse c/c++开发环境搭建