C++STL

C++的STL 都是标准模板库,可以直接使用

一、STL的介绍

具体可以去看C++容器库

1.标准的C++11的array(数组容器)

forward_list(单向链表容器)

          1.vector:动态数组,支持随机访问和尾部插入/删除操作,但在中间插入/删除操作较慢。

          2.deque:双端队列,支持随机访问,头部和尾部插入/删除操作都很快。

          3.list:双向链表,支持双向迭代器,插入/删除操作速度快,但随机访问较慢。

2.容器适配器

        1.stack:栈适配器,底层可以是 vector、deque 或 list。只允许在栈顶进行插入和删除操                  作,   遵循后进先出(LIFO)的原则。
        2.queue:队列适配器,底层可以是 vector、deque 或 list。只允许在队尾进行插入,在队头             进行删除操作,遵循先进先出(FIFO)的原则。
        3.priority_queue:优先队列适配器,底层通常使用 vector 实现。插入一个元素时,会按照一             定的规则将元素放到队列中的合适位置,获取元素时会返回队列中最高优先级的元素。

3.C++  STL提供了有序关联容器

  1. set:基于红黑树实现的集合容器,容器内元素不能重复,元素按照从小到大的顺序排列。

  2. multiset:基于红黑树实现的集合容器,容器内元素可以重复,元素按照从小到大的顺序排列。

  3. map:基于红黑树实现的键值对容器,容器内键值不能重复,元素按照键值从小到大的顺序排列。

  4. multimap:基于红黑树实现的键值对容器,容器内键值可以重复,元素按照键值从小到大的顺序排列。

4.迭代器

      1.输入迭代器(Input Iterator):支持单向迭代,只能读取,不能修改,每个元素只能被遍历             一次。适用于顺序读取数据的场景,如输入流。
       2.输出迭代器(Output Iterator):支持单向迭代,只能修改,不能读取,每个元素只能被遍              历一次。适用于顺序写入数据的场景,如输出流。
       3.前向迭代器(Forward Iterator):支持单向迭代,可以读取和修改,每个元素可以被遍历             多 次。适用于需要多次遍历的场景,如单向链表。
       4.双向迭代器(Bidirectional Iterator):支持双向迭代,可以读取和修改,每个元素可以被遍            历多次,支持前向遍历和反向遍历。适用于需要前向和反向遍历的场景,如双向链表。
       5.随机访问迭代器(Random Access Iterator):支持随机访问、读取和修改,可以按照任意            顺序访问元素,支持指针算术运算。适用于需要随机访问元素的场景,如动态数组。

5.泛型算法

  1. 查找算法:find、find_if、count、count_if、binary_search、lower_bound、upper_bound、equal_range等。

  2. 排序算法:sort、stable_sort、partial_sort、nth_element等。

  3. 修改算法:copy、copy_if、copy_n、fill、fill_n、generate、generate_n、replace、replace_if、remove、remove_if、unique等。

  4. 遍历算法:for_each、transform、accumulate、reduce等。

  5. 集合算法:set_intersection、set_union、set_difference、set_symmetric_difference等。

  6. 堆算法:make_heap、push_heap、pop_heap、sort_heap等。

  7. 数值算法:inner_product、adjacent_difference、partial_sum等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值