STL之set部分功能实现
来源:互联网 发布:油罐容积计算软件 编辑:程序博客网 时间:2024/04/28 10:56
STL set
STL 对这个序列可以进行查找,插入删除序列中的任意一个元素,而完成这些操作的时间同这个序列中元素个数的对数成比例关系,并且当游标指向一个已删除的元素时,删除操作无效。而一个经过更正的和更加实际的定义应该是:一个集合(set)是一个容器,它其中所包含的元素的值是唯一的。这在收集一个数据的具体值的时候是有用的。集合中的元素按一定的顺序排列,并被作为集合中的实例。一个集合通过一个链表来组织,在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。具体实现采用了红黑树的平衡二叉树的数据结构。
#include<set>#include<algorithm>#include<stdio.h>using namespace std;set<int>Set1;set<int>Set2;set<int>Set3;/*STL为了共同性,很多函数都是公用的,e.g.: begin(),end()...begin() 返回指向第一个元素的迭代器clear() 清除所有元素count() 返回某个值元素的个数empty() 如果集合为空,返回true(真)end() 返回指向最后一个元素之后的迭代器,不是最后一个元素equal_range() 返回集合中与给定值相等的上下限的两个迭代器erase() 删除集合中的元素find() 返回一个指向被查找到元素的迭代器get_allocator() 返回集合的分配器insert() 在集合中插入元素lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器key_comp() 返回一个用于元素间值比较的函数max_size() 返回集合能容纳的元素的最大限值rbegin() 返回指向集合中最后一个元素的反向迭代器rend() 返回指向集合中第一个元素的反向迭代器size() 集合中元素的数目swap() 交换两个集合变量upper_bound() 返回大于某个值元素的迭代器value_comp() 返回一个用于比较元素间的值的函数std::set_intersection() :这个函数是求两个集合的交集。std::set_union() :求两个集合的并集std::set_difference():差集*/void print(){ //输出 set<int>::iterator it; for(it = Set3.begin(); it != Set3.end(); it++) printf("%d ",*it); puts("");}int main(){ int a[10]={15,1,3,5,7,13,15,21,9,10}; for(int i=0;i<10;i++) { Set1.insert(a[i]); Set2.insert(i); } //并集 set_union(Set1.begin(),Set1.end(),Set2.begin(),Set2.end(),inserter(Set3,Set3.begin())); print(); Set3.clear(); //交集 set_intersection(Set1.begin(),Set1.end(),Set2.begin(),Set2.end(),inserter(Set3,Set3.begin())); print(); Set3.clear(); //差集 set_difference(Set1.begin(),Set1.end(),Set2.begin(),Set2.end(),inserter( Set3,Set3.begin())); print(); Set3.clear();}
0 0
- STL之set部分功能实现
- STL中关于Set的部分功能实现
- STL之set实现
- STL中vector部分功能的实现
- 【STL】STL之set
- stl之set
- STL 应用之set
- STL容器之set
- STL之<set>
- STL之set
- STL之set
- C++ STL之set
- C++ STL 之set
- STL 之 set 集合
- STL之set
- STL 之set 练习
- stl 之set图解
- STL之set姿势
- JS移动的方块
- JS 地图移动拖拽
- 常见的HTTP 状态代码
- CSS样式查询 border-style
- CSS样式 cursor
- STL之set部分功能实现
- 关于Extjs异步session超时问题处理
- JavaScript JSON 对象深拷贝方法(一例)
- 第34讲-项目二-麻烦的累加涨功夫
- ExtJS 3.1.0 中Ext.data.Store关于baseParams的BUG修正
- Spring--quartz中cronExpression配置说明
- JS 绘图类(纯DIV绘图)
- linux-Vi使用方法(备忘)
- LINUX下JDK的安装与配置(备忘)