1.set:
//set作用:自动维护出一个不重复,有序的集合
//以下代码n为set大小
#include<iostream>
#include<set> //使用set需引入set头文件
using namespace std;
int main(){
set<int>se; //创建方法
se.insert(1); //插入操作,时间复杂度:O(log(n))
cout<<se.size()<<endl; //返回set中有几个数,时间复杂度:O(1)
se.clear(); //清空set,时间复杂度:O(n)
if(se.empty()) cout<<"Your set is empty!"<<endl; //判断set是否为空,时间复杂度:O(1)
set<int>::iterator it1=se.begin(); //返回set中第一个迭代器,时间复杂度:O(1)
set<int>::iterator it2=se.end(); //返回set中最后一个迭代器,时间复杂度:O(1)
cout<<*se.begin()<<endl; //返回set中最小的数,如果set为空,
return 0;
}
用法1:size()操作 查询set里的元素个数 时间复杂度:O(1)
用法2:empty()操作 查询set是否为空 时间复杂度:O(1)
用法3:clear()操作 清空set里的元素 时间复杂度:O(n),n为set的大小
用法4:begin()操作 查询set里的首个迭代器 时间复杂度:O(1)
用法5:end()操作 查询set里的最后一个迭代器 时间复杂度:O(1)
用法6:*(此处填创建set的名称).begin() 查询set中最小的一个数 时间复杂度:O(log(n)),n为set的大小
用法7.1:*(此处填创建set的名称).rbegin() 查询set中最大的一个数 时间复杂度:O(log(n)),n为set的大小
用法7.2:*(--(此处填创建set的名称).end()) 查询set中最大的一个数 时间复杂度:O(1),注意这里一定要--,因为美国人习惯左闭右开,*(此处填创建set的名称).end()会出错
用法8:*(此处填创建set的名称).
未完待续