常用方法
set
1.工具->编译选项->程序->g++:g++.exe 改为:g++ -std=c++11就可以使用auto了。
set集合是c++ stl库中自带的一个容器,set具有以下两个特点:
1、set中的元素都是排好序的
2、set集合中没有重复的元素
常用操作:
begin() 返回set容器的第一个元素的地址
end() 返回set容器的最后一个元素地址
clear() 删除set容器中的所有的元素
empty() 判断set容器是否为空
max_size() 返回set容器可能包含的元素最大个数
size() 返回当前set容器中的元素个数
erase(it) 删除迭代器指针it处元素
insert(a) 插入某个元素
count(a) 找到a元素就返回1,没找到就返回0
set<int>::iterator it; 可不用修改编译器选项
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> s;
s.insert(5);
s.insert(4);
s.insert(3);
s.insert(-2);
cout << s.size() <<endl;
if(s.count(5)==0)
cout<<"not Find 5"<<endl;
else
cout<<"find 5"<<endl;
s.erase(5); // 删除5元素
if(s.count(5)==0)
cout<<"nof Find 5"<<endl;
else
cout<<"find 5"<<endl;
cout << s.size() <<endl;
// 它是顺序排列的。
for(auto it=s.begin();it != s.end();it++)
{
cout<<*it<<' ';
}
cout<<endl;
return 0;
}
迭代器
for (auto &it: setname)
cout<<it<<endl;
或者
for(auto it=setname.begin();
cout<<(*it)<<endl;
插入方法
关于upper_bound()与lower_bound()
- upper_bound() :
iterator upper_bound( const key_type &key );
在当前多元集合中返回一个指向大于Key值的元素的迭代器。
从数组begin位置到end-1位置二分查找第一个大于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,可以找到数字在容器中的下标。
- lower_bound() :
iterator lower_bound( const key_type &key );
返回一个指向大于或者等于key值的第一个元素的迭代器。
从数组begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。
//此处语法参考 https://blog.csdn.net/qq_40160605/article/details/80150252