STL set
set是C++标准模版库(STL,Standard Template Library)中的一种关联式容器。集合。用二叉搜索树实现,集合中的每个元素只出现一次,且是排好序的,因此,这是一种无序数组(自动按照值的大小排序,不会按0,1,2的顺序排序)。访问元素的时间复杂度是O(logn)的。能极大地简化代码。
一.定义set集合
使用set需要头文件:
#include<set>//或者万能头文件#include<bits/stdc++.h> using namespace std;
开始定义...
/* set<int> a; //定义一个int类型的集合a // set<int> a(10); //error,未定义这种构造函数 // set<int> a(10, 1); //error,未定义这种构造函数 set<int> b(a); //定义并用集合a初始化集合b set<int> b(a.begin(), a.end()); //将集合a中的所有元素作为集合b的初始值 */
总结
/* set<数据类型> 集合名; //定义一个空集合 set<数据类型> 集合名(集合名); //定义并用括号内集合初始化集合b set<数据类型> 集合名(集合名.begin(), 集合名.end());//将括号内集合中的所有元素作为集合的初始值 */
一.set容器的函数
以下为部分函数...
/* set<int> a; a.insert(n);//把n放进set a(会自动排序) a.erase(n);//删除元素n a.clear();//清空set a a.empty ();//判断set是否为空(返回一个bool类型) a.size();//返回元素个数 a.find(k);//返回一个迭代器,指向键值k a.lower_bound(k);//返回一个迭代器,指向键值不小于k的第一个元素 a.upper_bound(k);//返回一个迭代器,指向键值大于k的第一个元素 a.begin();//访问第一个元素 a.end();//访问末尾元素 a.max_size();//返回集合大小
注:
迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。
To be continued...