map and set

标准模板库
#include<algorithm>
查找:
1.binary_search(a+n1,a+n2,值)//能找到返回ture,否则false
//等于:a<b为假,a>b为假
2.binary_search(数组名+n1,数组名+n2,值,排序规则结构名())
//等于:a必须在b前面不对,b在a前面也不对
//没有排序规则默认从小到大排
3.在对元素类型为T的从小到大排好序的基本类型的数组中进行查找
T *bower_bound(数组名+n1,数组名+n2,值)
//返回一个指针T *p //*p为查找区间里大于等于“值”的下标最小的元素
如果找不到,p就指向n2对应的数(n2不在查找区间里)
T *bower_bound(数组名+n1,数组名+n2,值,排序规则结构名())
4. T *upper_bound(数组名+n1,数组名+n2,值);
//返回一个指针T *p //*p为查找区间里大于“值”的下标最小的元素
T *upper_bound(数组名+n1,数组名+n2,值,排序规则结构名());
5.平衡二叉树结构
有时需要增加数据,删除,查找数据尽可能快
multiset     set     multimap     map  //排序容器(logn)
#include<set>
multiset<T> st;  a<b--ture a在b前边
st.insert()
st.erase()
st.find();     //返回一个迭代器,如果找不到,返回st.end()
multiset<T>::iterator p;   //大致和指针差不多
可以用*p,p.a
可以++,--,用!=和==比较
multiset<T> st;//st.begin()指向第一个元素
//st.end()指向最后一个数后边一个数

multiset<int,rule1>st2   //自定义规则排序容器

set
区别:1.不能有重复元素(同相等定义)
      2.插入可能不成功
pair模板用法:
pair<T1,T2>等价于
struct
{
    T1 first;
    T2 second;
}a
定义了a为一种类型

猜你喜欢

转载自blog.csdn.net/luoshiyong123/article/details/80673133
今日推荐