C++ STL简介

快来打我* 2024-03-26 16:08 113阅读 0赞

C++ STL简介

原文:常用代码模板2——数据结构

  1. vector, 变长数组,倍增的思想
  2. size() 返回元素个数
  3. empty() 返回是否为空
  4. clear() 清空
  5. front()/back()
  6. push_back()/pop_back()
  7. begin()/end()
  8. []
  9. 支持比较运算,按字典序
  10. pair<int, int>
  11. make_pair(a,b);
  12. first, 第一个元素
  13. second, 第二个元素
  14. 支持比较运算,以first为第一关键字,以second为第二关键字(字典序)
  15. string,字符串
  16. size()/length() 返回字符串长度
  17. empty()
  18. clear()
  19. substr(起始下标,(子串长度)) 返回子串
  20. c_str() 返回字符串所在字符数组的起始地址
  21. queue, 队列
  22. size()
  23. empty()
  24. push() 向队尾插入一个元素
  25. front() 返回队头元素
  26. back() 返回队尾元素
  27. pop() 弹出队头元素
  28. priority_queue, 优先队列,默认是大根堆
  29. size()
  30. empty()
  31. push() 插入一个元素
  32. top() 返回堆顶元素
  33. pop() 弹出堆顶元素
  34. 定义成小根堆的方式:priority_queue<int, vector<int>, greater<int>> q;
  35. stack,
  36. size()
  37. empty()
  38. push() 向栈顶插入一个元素
  39. top() 返回栈顶元素
  40. pop() 弹出栈顶元素
  41. deque, 双端队列
  42. size()
  43. empty()
  44. clear()
  45. front()/back()
  46. push_back()/pop_back()
  47. push_front()/pop_front()
  48. begin()/end()
  49. []
  50. set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列
  51. size()
  52. empty()
  53. clear()
  54. begin()/end()
  55. ++, -- 返回前驱和后继,时间复杂度 O(logn)
  56. set/multiset
  57. insert() 插入一个数
  58. find() 查找一个数
  59. count() 返回某一个数的个数
  60. erase()
  61. (1) 输入是一个数x,删除所有x O(k + logn)
  62. (2) 输入一个迭代器,删除这个迭代器
  63. lower_bound()/upper_bound()
  64. lower_bound(x) 返回大于等于x的最小的数的迭代器
  65. upper_bound(x) 返回大于x的最小的数的迭代器
  66. map/multimap
  67. insert() 插入的数是一个pair
  68. erase() 输入的参数是pair或者迭代器
  69. find()
  70. [] 注意multimap不支持此操作。 时间复杂度是 O(logn)
  71. lower_bound()/upper_bound()
  72. unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
  73. 和上面类似,增删改查的时间复杂度是 O(1)
  74. 不支持 lower_bound()/upper_bound(), 迭代器的++,--
  75. bitset, 圧位
  76. bitset<10000> s;
  77. ~, &, |, ^
  78. >>, <<
  79. ==, !=
  80. []
  81. count() 返回有多少个1
  82. any() 判断是否至少有一个1
  83. none() 判断是否全为0
  84. set() 把所有位置成1
  85. set(k, v) 将第k位变成v
  86. reset() 把所有位变成0
  87. flip() 等价于~
  88. flip(k) 把第k位取反

发表评论

表情:
评论列表 (有 0 条评论,113人围观)

还没有评论,来说两句吧...

相关阅读

    相关 STL简介

    STL,即标准模板库(Standard Template Library)。STL提供了一些常用的数据结构和算法。例如vector就是STL提供的一个容器,排序、顺序查找、折半

    相关 STL简介

    本文主要介绍STL的相关知识。 1. 概述   STL(Standard Template Library),即标准模板库,惠普实验室开发的一系列软件的统称。从根本上