一.C++中部分关键字的用法
1. auto
关键字auto是C++11引入的,它可以用于变量声明和函数返回类型的推导。当你不关心变量的具体类型时,可以使用auto来让编译器根据初始化表达式推导出变量的类型。这样可以简化代码,提高可读性。
1.在for循环中遍历容器时,使用auto可以简化迭代器的类型声明:
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto it = vec.begin(); it != vec.end(); ++it) {// 使用it进行操作
}
2.使用new或make_*函数创建对象时,使用auto可以简化指针或智能指针的类型声明:
auto ptr = std::make_shared<int>(42);
3.在表达式模板等复杂情况下,使用auto可以让编译器推导出表达式的类型,避免手动书写复杂的类型声明:
auto result = expression1 * expression2 + expression3;
2.bool
用于声明布尔类型的变量,布尔类型的变量存储true或false两个值。布尔类型变量除了存储true和false之外,实际上在C++中,它们可以存储其他整数值。当布尔类型变量被赋予一个非零的整数值时,它会被视为true;当被赋予零时,它会被视为false。
1.基本用法:
bool isReady = true;
bool isFinished = false;
2.条件语句: bool类型通常用于条件语句中
bool isRaining = true;
if (isRaining) {// do something
} else {// do something else
}
3.逻辑运算: bool类型通常与逻辑运算符一起使用,例如&&(与)、||(或)、!(非):
bool hasMoney = true;
bool hasTime = false;
if (hasMoney && !hasTime) {// do something
}
4.函数返回值: bool类型常用作函数的返回值,表示函数执行的成功或失败。
bool isValidInput(int value) {if (value > 0) {return true;} else {return false;}
}
3.break
用于在循环或者 switch 语句中终止当前的循环。
1.在循环中使用 break:
- 当 break 语句被执行时,它会立即终止当前的循环,然后程序的执行流程会跳转到循环后面的语句。
- break 通常用于 for、while、do-while 等循环中,以提前结束循环。
- 如果是多层循环时,break只是跳出当前所在的循环,并不会跳出所有循环。
#include <iostream>
using namespace std;int main() {for (int i = 0; i < 10; i++) {if (i == 5) {break; // 当 i 等于 5 时,终止循环}cout << i << " ";}return 0;
}
2.在 switch 语句中,每个 case 后面通常会跟随一个 break 语句,以确保在匹配到一个 case 后,程序会跳出 switch 语句,而不会继续执行后续的 case。
#include <iostream>
using namespace std;int main() {int num = 2;switch (num) {case 1:cout << "Number is 1" << endl;break;case 2:cout << "Number is 2" << endl;break; // 终止 switch 语句case 3:cout << "Number is 3" << endl;break;default:cout << "Number is not 1, 2, or 3" << endl;}return 0;
}
4.catch
用于捕获异常并进行处理。当在try块中抛出异常时,catch块会捕获并处理该异常。
#include <iostream>
using namespace std;int main() {try {throw 20;} catch (int e) {cout << "捕获到异常。异常编号:" << e << endl;}return 0;
}
最终打印:捕获到异常。异常编号:20
5.continue
用于在循环结构中控制程序的执行流程。当程序执行到continue语句时,会立即跳过当前循环中剩余的代码,然后继续下一次循环的执行。
#include <iostream>
using namespace std;int main() {for (int i = 1; i <= 5; i++) {if (i == 3) {continue; // 当i等于3时,跳过当前循环,继续下一次循环}cout << "当前的i值为: " << i << endl;}return 0;
}
6.enum
用于定义枚举类型,它允许我们创建一个新的数据类型,该数据类型具有一组固定的可能值,并且变量可以从这组值中选择一个。
// 定义一个枚举类型
enum Days {Saturday, Sunday, Tuesday, Wednesday, Thursday, Friday};// 声明一个枚举变量并初始化
Days day = Saturday;// 使用枚举变量进行比较
if (day == Saturday) {std::cout << "今天是星期六" << std::endl;
}
- 默认情况下,第一个名称Saturday的值为 0,第二个名称Sunday的值为 1,第三个名称Tuesday的值为 2,以此类推。
- 也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。
enum Days {Saturday, Sunday = 3, Tuesday, Wednesday, Thursday, Friday};
那么:Saturday依旧还是0,Sunday = 3,Tuesday = 4,依次类推,后面的值都比前一个大1。