【C++刷题宝典】常用语法,STL与周边知识汇总
3040
2021.11.09
2021.12.12
发布于 未知归属地

1. C++ 常用语法

1.1. 初始化

int a = 0;
float b = 0.0;
double c = 0.0;
bool d = true;
char e = 'c';

1.2. 修饰符

signed/unsigned char
signed/unsigned short
short/long/signed/unsigned int
signed/unsigned long
long double

1.3. 循环遍历

TBD

1.4. 数组

  • 声明数组:type arrayName [ arraySize ];
int array[5];
  • 初始化数组
// 基本方法
int array[5] = {10, 2, 5, 1, 8};
// 忽略arraySize
int array[] = {10, 2, 5, 1, 8};
// 为所有元素赋相同值(底层调用了memset)
int array[] = {10};
// 同上,为所有元素赋相同值
int array[5];
memset(array, 10, 5);

1.5. 字符与字符串

1.5.1. char字符

  • 判断字符是否为大小写字母
int isalpha(char c);
  • 字符大小写转换
char tolower(char c);
char toupper(char c);

1.5.2. C风格字符串

C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。字符串实际上是使用 null 字符 \0 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。

// 自动变成['s', 't', 'r', 'i', 'n', 'g', '\n']
char str[] = "string";

1.5.3. 标准库中的string

将在下面STL部分介绍。

2. STL

2.1. 容器

  1. 容器是一类存储其他对象集合的对象,它们以类模板的形式实现。
  2. 容器内部拥有一系列的元素(element),容器负责管理元素的存储空间,并且提供成员函数直接地或通过迭代器(iterator)去访问它们。
  3. 许多容器有着一些相似的成员函数,在决定使用哪一个容器时,我们不仅需要考虑容器提供的功能,也要考虑容器的效率。
  4. stackqueuepriority_queue以container adaptor(容器转接器)的形式出现。container adaptor不是完整的container类,而是一种依赖其他container类的container,封装了它所依赖的container,并且可以通过container adaptor或所依赖的container提供的方法来访问。

2.1.1. vector

3. 相关

3.1. ASCII

  • 十进制下
    • 48 ~ 57 是从 '0' ~ '9'
    • 65 ~ 90 是从 'A' ~ 'Z'
    • 97 ~ 122 是从 'a' ~ 'z'
    • 因此将大写字母转换成小写字母需要对其+32

char是特殊的int,对其直接进行int加减操作即可

3.2. 位运算

  • 基本操作符
    • 「&」按位与:如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
    • 「|」按位或:两个相应的二进制位中只要有一个为1,该位的结果值为1
    • 「^」按位异或:若参加运算的两个二进制位值相同则为0,否则为1
    • 「~」取反:一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
    • 「<<」左移:将一个数的各二进制位全部左移N位,移到左边的高位被舍弃,右补0
    • 「>>」右移:将一个数的各二进制位全部右移N位,移到右端的低位被舍弃,对于无符号数,高位补0
  • 位运算符与赋值运算符可以组成复合赋值运算符
评论 (2)