【知识点整理】C++标准模板库(STL)

STL(Standard Template Library)标准模板库

整理自《算法笔记》

| vector(向量)

  • 头文件 #include<vector>

  • 用途:
    **1、**变长数组;
    **2、**以邻接表存储图(《算法笔记》10.2.2);
    3、有些场合需要把部分数据输出在同一行,数据中间用空格隔开,由于输出数据的个数是不确定的,为了更方便地处理最后一个满足条件的数据后面不输出额外的空格,可以先用vector记录所有需要输出的数据,然后一次性输出

  • 访问:
    1、通过下标(从0size() - 1
    2、通过迭代器 (vector<typename>::iterator

v[i]*(v.begin() + i) 是等价的

  • 比较:
    vector<>可以直接比较大小,按字典序排列;故vector数组在用sort()时无需额外写比较函数;(参考

只有stringvector 中允许使用 v.begin()+i 这种迭代器加整数的写法

  • 常用函数

    • push_back(x) : 在尾部添加一个元素x
    • pop_back(): 删除尾元素
    • size() : 返回元素个数
    • clear() : 清空
    • insert(it, x): 向vector的迭代器it处插入元素x
    • erase(it):删除迭代器it处的元素
    • erase(first, last):删除迭代器区间[first, last) 内的元素
  • 细节:
    容器内容也是一个STL容器时,记得在> >之间加空格,
    vector<vector<int> > name;


| set(集合)

集合:内部自动 递增 有序且不含重复元素
红黑树实现

  • 头文件 #include<set>

  • 用途:
    1、需要去重但却不方便直接开数组的情况

  • 访问:
    只能通过迭代器 (set<typename>::iterator it

  • 常用函数

    • insert(x): 向set中插入x,自动递增排序和去重 (O(logN)
    • find(value) : 返回 set 中对应值为value 的迭代器(O(logN))查找失败时返回st.end()
    • erase(it):删除迭代器it处的元素 (O(1)
    • erase(value):其中value为所需删除元素的值(O(logN)
    • erase(first, last):删除迭代器区间[first, last)内元素(O(log(first - last))
    • size() : 返回元素个数(O(1)
    • clear() : 清空 (O(N)
  • 延伸:
    1、如果需要处理元素不唯一的情况,则需使用 multiset
    2、如需只去重但不排序,C++ 11标准中增加了 unordered_set(以散列代替set内的红黑树),速度比set快得多


| string(字符串)

  • 头文件 #include&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值