【总结】C++ 基础数据结构

您所在的位置:网站首页 集合的范围是怎么定的 【总结】C++ 基础数据结构

【总结】C++ 基础数据结构

#【总结】C++ 基础数据结构 | 来源: 网络整理| 查看: 265

文章目录 一、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 办公设备维修网 版权所有 豫ICP备15022753号-3