C++ string类与STL标准模板库 快速复习

更新于2024-11-05 08:00:009 分钟4 千字181363200
摘要

0、C++刷题万能头文件

bits-stdc++.h

0.1、 `bits/stdc++.h` ChatGPT的介绍

bits/stdc++.h 是一个非标准的 C++ 头文件,它通常用于方便地包含 C++ 标准库中的所有头文件。该头文件通常出现在一些在线编程竞赛或者一些 C++ 教学资源中,因为它可以减少手动包含标准库头文件的工作量,使得编写简短的代码变得更加方便。

这个头文件实际上并不是 C++ 标准库的一部分,而是一些编译器提供的特定功能。通常情况下,它会包含 C++ 标准库中的所有头文件,以及一些其他系统头文件。但是,使用它也有一些缺点,比如可能会增加编译时间和代码的可移植性问题。

一般来说,如果你不是在特定的比赛或者环境下工作,最好避免使用这个头文件,而是手动包含你需要的具体的标准库头文件,以确保代码的可移植性和可读性。

0.2、一般用法

该头文件在没有oj,需要手动引入头文件,手动写输入输出的时候,使用该头文件会十分方便。

一般可以直接这样写:

#include<bits/stdc++.h>
using namespace std;
 
int main()
{
    return 0;
 }

1、简介

C++ Standard Template Library STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数。

STL 不是面向对象的编程模式,而是一种泛型编程。

STL具有容器概念和容器类型,比如序列容器vector、deque、list、forward_list、queue、priority_queue、stack、array;关联容器set、multiset、map、multimap;无序关联容器unordered_set、unordered_multiset、unordered_map、unordered_multimap。

2、string

3、vector

向量(vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。

3.1、构造函数

方法名 说明
vector() 创建一个空vector
vector(int nSize) 创建一个vector,元素个数为nSize
vector(int nSize,const t& t) 创建一个vector,元素个数为nSize,且值均为t
vector(const vector&) 复制构造函数
vector(begin,end) 复制[begin,end)区间内另一个数组的元素到vector中

3.2、增加函数

方法名 说明
void push_back(const T& x) 向量尾部增加一个元素X
iterator insert(iterator it,const T& x) 向量中迭代器指向元素前增加一个元素x
iterator insert(iterator it,int n,const T& x) 向量中迭代器指向元素前增加n个相同的元素x
iterator insert(iterator it,const_iterator first,const_iterator last) 向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据

3.3、删除函数

  • iterator erase(iterator it):删除向量中迭代器指向元素
  • iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
  • void pop_back():删除向量中最后一个元素
  • void clear():清空向量中所有元素

4.遍历函数

  • reference at(int pos):返回pos位置元素的引用
  • reference front():返回首元素的引用
  • reference back():返回尾元素的引用
  • iterator begin():返回向量头指针,指向第一个元素
  • iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置
  • reverse_iterator rbegin():反向迭代器,指向最后一个元素
  • reverse_iterator rend():反向迭代器,指向第一个元素之前的位置

5.判断函数

  • bool empty() const:判断向量是否为空,若为空,则向量中无元素

6.大小函数

  • int size() const:返回向量中元素的个数
  • int capacity() const:返回当前向量所能容纳的最大元素值
  • int max_size() const:返回最大可允许的 vector 元素数量值

7.其他函数

  • void swap(vector&):交换两个同类型向量的数据
  • void assign(int n,const T& x):设置向量中前n个元素的值为x
  • void assign(const_iterator first,const_iterator last):向量中[first,last)中元素设置成当前向量元素

8.看着清楚

  1. push_back 在数组的最后添加一个数据
  2. pop_back 去掉数组的最后一个数据
  3. at 得到编号位置的数据
  4. begin 得到数组头的指针
  5. end 得到数组的最后一个单元+1的指针
  6. front 得到数组头的引用
  7. back 得到数组的最后一个单元的引用
  8. max_size 得到vector最大可以是多大
  9. capacity 当前vector分配的大小
  10. size 当前使用数据的大小
  11. resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
  12. reserve 改变当前vecotr所分配空间的大小
  13. erase 删除指针指向的数据项
  14. clear 清空当前的vector
  15. rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
  16. rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
  17. empty 判断vector是否为空
  18. swap 与另一个vector交换数据

4、未完待续

评论区

你认为这篇文章怎么样?
  • great
    0
  • happy
    0
  • doubt
    0
  • boring
    0
  • bad
    0

0/2048