程序设计与算法-算法-STL初步

STL初步

头文件

sort
sort(数组名+n,数组名+m)// 能,m为整数 ,适用于基本类型 ,范围为下标n到m-1,下标m不参与排序

//自定义排序
struct rule{
  bool operator(const T & a ,const T & b)(){
  // 若a在b前,则返回true,否则false
  }
};
sort(a,a+sizeof(a),rule());
二分查找

排好序的数组上进行二分查找

等于的含义:a等于b 等价于a>b 和a<b都不成立。

binary_search(a,a+a.szie(),key,rule());
lower_bounder(a,a+a.szie(),key);// 查找下界,返回数组存储元素类型的指针,是大于查找值下标最小的
lower_bounder(a,a+a.szie(),key,rule());//查找排在可key后面的元素,查不到,指向下标为a+size()的元素
upper_bounder

平衡二叉树

增,删,查都能在 l o g ( n ) log(n) log(n)复杂度完成
四种排序容器

  • multiset
  • set
  • multimap
  • map

multiset 上的迭代器:++,–,!=,==,不能比大小,不能加减整数,不能相加减

#include <set> // multiset ,set
multiset<T> st;
int a[];
for()
  st.insert(a[i]);//插入的是复制品
  multiset<int>::iterator i;
  for(i= st.begin();i!=st.end();i++)
    cout<<*i;
    i = st.find(32)
    if(i == st.end())
       cout<<"not find";
     else 
       st.eraser(i);
multiset<int rule> st2;

set和multiset的区别:set中不能有重复的元素。(重复元素:a和b重复 ,即a等于b,a>b和 a<b都不成立。
set可能插入失败

pair<set<int>::iterator,bool> result = st.inset(2);
if(! result.second)
   cout<<"exists";

pair<T1,T2>
struct{
T1 first;
T2 second;
};

multimap<T1,T2> mp;
struct{
T1 first;
T2 second;
};
multimap是按first排序,按first查找
默认是升序

map不能有关键字重复
可以使用[],下标为关键字,返回second

reference

北大 程序设计与算法(一)C语言程序设计 mooc https://www.icourse163.org/course/PKU-1001553023

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值