3月6号stl学习总结

本文深入探讨了STL(标准模板库)的核心组件,包括栈、队列、vector、sort等算法与数据结构的使用方法及特性。详细解析了各组件的定义、操作函数,并介绍了自定义排序和生成排列的方法。

3.6号stl学习总结

                       -----数学4班杜鑫

Stl包括(栈、队列、vector、sort、生成排列、set、multiset、map、multimap、优先队列)

.栈(stack  (先进后出)

    头文件: #include <stack>

定义:stack<data_type> stack_name;

       如:stack <int> s;

操作:

       empty() ----- 返回bool型,表示栈内是否为空 (s.empty() )

       size() ----- 返回栈内元素个数 (s.size() )

       top() ----- 返回栈顶元素值 (s.top() )

       pop() ----- 移除栈顶元素(s.pop(); )

       push(data_type a) ----- 向栈压入一个元素 a(s.push(a); )

.队列(queue (先进先出)

    头文件:#include<algorithm>

比栈多:

front() ----- 返回queue内的下一个元素 (q.front() )

       back() ----- 返回queue内的最后一个元素(q.back() )

   其余同上;

.vector    (动态数组)

    push_back(data_type a)    //将元素a插入最尾端

       pop_back()      //将最尾端元素删除

       v[i]       //类似数组取第i个位置的元素(v[0] )

.sort (排序)

    sort(begin, end);

sort(begin, end, cmp);

默认为从小到大排序;

Cmp 可以自定义一个bool函数实现自定义排序

例如:从大到小排序:

bool cmp(int a, int b)

{

             return a > b;

 }

 

.生成排序

    头文件: #include <algorithm>

bool next_permutation(begin, end);    //改变区间内元素的顺序,产生下一个排列。

bool prev_permutation(begin, end);    //产生前一个排列。 end为最后一个元素的下一个位置。

   upper_bound lower_bound

  upper_bound(begin, end, value);      //返回>value的元素的第一个位置。

lower_bound(begin, end, value);     //返回>=value的元素的第一个位置。

num[] = {1,2,2,3,4,5};

lower_bound(num, num + 6, 2)num + 1

upper_bound(num, num + 6, 2)num + 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值