C++ 循环
C++ 循环 有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式: 循环类型C++ 编程语言提供了以下几种循环类型。点击链接查看每个类型的细节。 循环类型描述while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。for 循环多次执行一个语句序列,简化管理循环变量的代码。do…while 循环除了它是在循环主体结尾测试条件外,其他与 while 语句类似。嵌套循环您可以在 while、for 或 do..while 循环内使用一个或多个循环。 循环控制语句循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。C++ 提供了下列的控制语句。点击链接查看每个语句的细节。 控制语句描述break 语句终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch...
C++ 引用
C++ 引用引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++ 引用 vs 指针引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间被初始化。 C++ 中创建引用试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。例如: int i = 17; 我们可以为 i 声明引用变量,如下所示: int& r = i;double& s = d; 在这些声明中,& 读作引用。因此,第一个声明可以读作 “r 是一个初始化为 i 的整型引用”,第二个声明可以读作 “s 是一个初始化为 d 的 double 型引用”。下面的实例使用了 int 和 double...
C++ 异常处理库 <stdexcept>
C++ 异常处理库 是 C++ 标准库中的一个头文件,它定义了一组标准异常类,用于处理程序运行时的错误情况。异常是程序运行时发生的错误,它们可以被捕获并处理,以避免程序的非正常终止。 头文件定义了一组从 std::exception 派生的异常类,这些类提供了一种标准的方式来报告和处理错误。语法要使用 中的异常类,首先需要包含这个头文件:#include 然后,你可以使用这些异常类来抛出和捕获异常。例如:throw std::runtime_error(“An error occurred”);异常类 头文件定义了以下异常类: std::exception:所有标准异常类的基类。std::bad_exception:当异常处理过程中发生错误时抛出。std::bad_alloc:当内存分配失败时抛出。std::bad_cast:当类型转换失败时抛出。std::bad_typeid:当 typeid...
C++ 异常处理
C++ 异常处理异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。 如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。使用 try/catch 语句的语法如下所示: try{// 保护代码}catch( ExceptionName e1 ){// catch 块}catch( ExceptionName e2 ){// catch 块}catch( ExceptionName eN...
C++ 常量
C++ 常量 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 整数常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。下面列举几个整数常量的实例: 212 // 合法的215u // 合法的0xFeeL // 合法的078 // 非法的:8 不是八进制的数字032UU // 非法的:不能重复后缀 以下是各种类型的整数常量的实例: 85 // 十进制0213 // 八进制0x4b // 十六进制30...
C++ 容器类 <vector>
C++ 容器类 简介C++ 标准库(Standard Template Library, STL)是 C++ 的一个重要组成部分,它提供了一组通用的模板类和函数,用于处理数据集合。 是 STL 中的一个容器类,用于存储动态大小的数组。 是一个序列容器,它允许用户在容器的末尾快速地添加或删除元素。与数组相比, 提供了更多的功能,如自动调整大小、随机访问等。语法在 C++ 中,使用 需要包含头文件 <>。以下是一些基本的语法: 声明一个 vector:std::vector myVector; 添加元素:myVector.push_back(10); 访问元素:int firstElement = myVector[0]; 获取元素数量:size_t size = myVector.size(); 清空 vector:myVector.clear(); 声明与初始化 需要指定元素类型,可通过多种方式进行初始化:#include #include int main() { std::vector vec1; ...
C++ 容器类 <unordered_set>
C++ 容器类 在C++中, 是标准模板库(STL)的一部分,提供了一种基于哈希表的容器,用于存储唯一的元素集合。与 set 不同,unordered_set 不保证元素的排序,但通常提供更快的查找、插入和删除操作。unordered_set 是一个模板类,其定义如下:#include std::unordered_set<Key, Hash = std::hash, Pred = std::equal_to, Alloc = std::allocator> Key 是存储在 unordered_set 中的元素类型。Hash 是一个函数或函数对象,用于生成元素的哈希值,默认为 std::hash。Pred 是一个二元谓词,用于比较两个元素是否相等,默认为 std::equal_to。Alloc 是分配器类型,用于管理内存分配,默认为 std::allocator。 语法以下是一些基本的 unordered_set 操作: 构造函数:创建一个空的 unordered_set。std::unordered_set...
C++ 容器类 <set>
C++ 容器类 C++ 标准库中的 是一个关联容器,它存储了一组唯一的元素,并按照一定的顺序进行排序。 提供了高效的元素查找、插入和删除操作。它是基于红黑树实现的,因此具有对数时间复杂度的查找、插入和删除性能。 容器中存储的元素类型必须满足以下条件: 元素类型必须可以比较大小。元素类型必须可以被复制和赋值。 语法包含头文件:#include 声明 set 容器std::set<元素类型> 容器名;常用操作 insert(元素): 插入一个元素。erase(元素): 删除一个元素。find(元素): 查找一个元素。size(): 返回容器中元素的数量。empty(): 检查容器是否为空。 实例下面是一个使用 的简单示例,包括元素的插入、查找、删除和输出结果。实例#include #include int main() { // 声明一个整型 set 容器 std::set mySet; // 插入元素 mySet.insert(10); mySet.insert(20); ...
C++ 容器类 <queue>
C++ 容器类 C++ 标准库中的 头文件提供了队列(Queue)数据结构的实现。队列是一种先进先出(FIFO, First In First Out)的数据结构,它允许在一端添加元素(称为队尾),并在另一端移除元素(称为队首)。队列是一种线性数据结构,它遵循以下规则: 元素只能从队尾添加。元素只能从队首移除。 语法在 C++ 中,队列的语法如下:#include // 声明队列std::queue q;这里 Type 是队列中存储元素的数据类型。常用操作队列提供了以下常用操作: empty(): 检查队列是否为空。size(): 返回队列中的元素数量。front(): 返回队首元素的引用。back(): 返回队尾元素的引用。push(): 在队尾添加一个元素。pop(): 移除队首元素。 实例下面是一个使用 C++ 标准库 的简单实例:实例#include #include int main() { // 创建一个整数队列 std::queue q; // 向队列中添加元素 ...
C++ 容器类 <priority_queue>
C++ 容器类 在 C++ 中, 是标准模板库(STL)的一部分,用于实现优先队列。优先队列是一种特殊的队列,它允许我们快速访问队列中具有最高(或最低)优先级的元素。在 C++ 中,priority_queue 默认是一个最大堆,这意味着队列的顶部元素总是具有最大的值。priority_queue 是一个容器适配器,它提供了对底层容器的堆操作。它不提供迭代器,也不支持随机访问。语法以下是 priority_queue 的基本语法:#include // 声明一个整型优先队列priority_queue pq; // 声明一个自定义类型的优先队列,需要提供比较函数struct compare { bool operator()(int a, int b) { return a > b; // 这里定义了最小堆 }};priority_queue<int, vector, compare> pq_min;常用操作 empty(): 检查队列是否为空。size():...