【总结】C++ 基础数据结构 |
您所在的位置:网站首页 › 集合的范围是怎么定的 › 【总结】C++ 基础数据结构 |
文章目录
一、set 的概念二、set 的基本操作三、set 的用法
一、set 的概念
set 的含义是集合,它是一个有序的容器,里面的元素都是排序好的,支持插入,删除,查找等操作,就像一个集合一样。所有的操作的都是严格在logn时间之内完成,效率非常高。set 和 multiset 的区别是:set 插入的元素不能相同,但是 multiset 可以相同。其特点如下: 每个元素的键值都唯一,不允许两个元素有相同的键值。所有元素都会根据元素的键值自动排序(默认从小到大)。set 中的元素不像 map 那样可以同时拥有实值(value)和键值(key),只能存储键,是单纯的键的集合。set 中元素的值不能直接被改变。set 支持大部分的map的操作,但是 set 不支持下标的操作,而且没有定义mapped_type类型。 二、set 的基本操作使用STL标准库的 set 时,应包含头文件:#include 1、set 的定义及初始化 set s //定义一个set容器 set s(s1) //定义一个set容器,并用容器s1来初始化 set s(b, e) //b和e分别为迭代器的开始和结束的标记 set s(s1.begin(), s1.begin()+3) //用容器s1的第0个到第2个值初始化s set s(a, a + 5) //将a数组的元素初始化vec向量,不包括a[4] set s(&a[1], &a[4]) //将a[1]~a[4]范围内的元素作为s的初始值2、set 的基本操作 s.begin() //返回指向第一个元素的迭代器 s.end() //返回指向最后一个元素的迭代器 s.clear() //清除所有元素 s.count() //返回某个值元素的个数 s.empty() //如果集合为空,返回true,否则返回false s.equal_range() //返回集合中与给定值相等的上下限的两个迭代器 s.erase() //删除集合中的元素 s.find(k) //返回一个指向被查找到元素的迭代器 s.insert() //在集合中插入元素 s.lower_bound(k) //返回一个迭代器,指向键值大于等于k的第一个元素 s.upper_bound(k) //返回一个迭代器,指向键值大于k的第一个元素 s.max_size() //返回集合能容纳的元素的最大限值 s.rbegin() //返回指向集合中最后一个元素的反向迭代器 s.rend() //返回指向集合中第一个元素的反向迭代器 s.size() //集合中元素的数目 三、set 的用法1、基本用法: #include #include using namespace std; int main(){ set s; s.insert(1); s.insert(2); s.insert(3); s.insert(1); cout set s; set::const_iterator it; set::iterator first; set::iterator second; for(int i=1; i4,5,6}; set s(a,a+3); set::iterator it; if((it=s.find(4))!=s.end()) cout1,2,3}; set s; set::iterator it; s.insert(a,a+3); for(it=s.begin(); it!=s.end(); ++it) cout set s; set::iterator it; for(int i=1; i return a.data > b.data; } } sets; set::iterator it;(2)元素是结构体: //可以直接将比较函数写在结构体内 struct Info{ string name; float score; //重载“ |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |