札记——C++标准库STL


前言

  • 一、标准库 ⊃ \supset 标准模板库STL

  • 一、STL六大部件

STL六大部件的关系

    1. 容器(Containers):放数据,封装内存
    1. 分配器(Allocators ):支持容器,帮助分配内存(默认隐式)
    1. 算法(Algorithms):操作数据

不同于OO,模板化编程

    1. 迭代器(Iterators):容器和算法之间的桥梁,泛化的指针
    1. 适配器(Adapters):转换
    1. 仿函数(functors):作用像个函数,eg.两个类相加

找出整个容器从头到尾所有元素中>=40的元素个数
STL示例

  • 二、复杂度(Complexity,O(Big-oh))

复杂度


  • 二、Containers容器——结构与分类

1.连续容器(sequence):

连续容器(Sequence Containers)

1.Array:

2.Vector:

3.Deque(戴克):

4.List:

只能用 list.sort();

5.Forward-list(在32bit机器上一个指针占用4个byte):


2.关联式容器(associative):

RB_tree 红黑树

以红黑树实现的,自动维持平衡,避免最坏查找

0. 树的遍历

1. 前序遍历
2. 中序遍历
3. 后续遍历

关联式容器(Associative Containers)

1.Set(独一无二):

set <type>

Multiset(允许重复):

multiset: 允许键值重复;

key = data= value

  • 自动排序,升序
  • 无法通过迭代器iterator改变元素值;
  • 可以通过迭代器iter++ 自动获取升序序列;

2.Map(独一无二)

map <type_key, type_data>

#include <map>
std::map<char,int> mymap;

std::map<char,std::string> mymap;
mymap['a'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值