C++ 标准库 <string>
C++ 标准库 C++ 标准库(Standard Template Library, STL)是 C++ 的核心组成部分之一,提供了丰富的数据结构和算法。 是 C++ 标准库中用于处理字符串的头文件。在 C++ 中,字符串是由字符组成的序列。 头文件提供了 std::string 类,它是对 C 风格字符串的封装,提供了更安全、更易用的字符串操作功能。要在 C++ 程序中使用 库,首先需要包含这个头文件:#include #include 基本语法std::string 类的基本语法如下: 声明字符串变量:std::string str; 初始化字符串:std::string str = “Hello, World!”; 使用 + 连接字符串:std::string str1 = “Hello, “;std::string str2 = “World!”;std::string result = str1 + str2; 常用成员函数std::string...
C++ 标准库 <stack>
C++ 标准库 在 C++ 中,标准库提供了多种容器和算法来帮助开发者更高效地编写程序。 是 C++ 标准模板库(STL)的一部分,它实现了一个后进先出(LIFO,Last In First Out)的数据结构。这种数据结构非常适合于需要”最后添加的元素最先被移除”的场景。 容器适配器提供了一个栈的接口,它基于其他容器(如 deque 或 vector)来实现。栈的元素是线性排列的,但只允许在一端(栈顶)进行添加和移除操作。基本操作 push(): 在栈顶添加一个元素。pop(): 移除栈顶元素。top(): 返回栈顶元素的引用,但不移除它。empty(): 检查栈是否为空。size(): 返回栈中元素的数量。 语法以下是使用 的基本语法:#include #include int main() { std::stack s; // 向栈中添加元素 s.push(1); s.push(2); s.push(3); // 访问栈顶元素 std::cout << "Top element is: " << s.top()...
C++ 标准库 <sstream>
C++ 标准库 在 C++ 编程中,处理字符串和数字之间的转换是一项常见的任务。sstream 是 C++ 标准库中的一个组件,它提供了一种方便的方式来处理字符串流(可以像处理流一样处理字符串)。 允许你将字符串当作输入/输出流来使用,这使得从字符串中读取数据或将数据写入字符串变得非常简单。定义sstream是 C++ 标准库中的一个命名空间,它包含了几个类,用于处理字符串流,这些类包括: istringstream:用于从字符串中读取数据。ostringstream:用于将数据写入字符串。stringstream:是istringstream和ostringstream的组合,可以同时进行读取和写入操作。 语法使用sstream的基本语法如下:#include // 使用istringstreamstd::istringstream iss(“some data”); // 使用ostringstreamstd::ostringstream oss; //...
C++ 标准库 <regex>
C++ 标准库 C++ 标准库中的 头文件提供了正则表达式的功能,允许开发者使用一种非常灵活的方式来搜索、替换或分割字符串。正则表达式是一种强大的文本处理工具,广泛应用于数据验证、文本分析和模式匹配等领域。正则表达式是一种使用单个字符串来描述、匹配一系列符合某个句法规则的字符串的模式。在 C++ 中,正则表达式通过 库实现。基本语法正则表达式的基本组成 字符类:如 [abc] 表示匹配 a、b 或 c 中的任意一个字符。量词:如 *(零次或多次)、+(一次或多次)、?(零次或一次)。边界匹配:如 ^(行的开始)、$(行的结束)。分组:使用圆括号 () 来创建一个分组。 C++ ...
C++ 标准库 <random>
C++ 标准库 C++ 标准库中的 头文件提供了一组用于生成随机数的工具,涵盖了从简单的均匀分布到复杂的离散分布,为需要随机数的应用程序提供了广泛的选择。这些工具对于模拟、游戏开发、加密算法等领域非常有用。 不仅支持生成伪随机数,还支持种子控制、各种概率分布等,使得开发者可以灵活地生成符合特定需求的随机数序列。 库由以下三个主要组件构成:随机数引擎:生成伪随机数的核心,用于控制生成过程的可重复性和随机性。随机数分布:控制生成的数值遵循的概率分布类型。随机数适配器:允许调整引擎行为,如 discard_block 等适配器。在 C++ 中,随机数生成器(Random Number Generator, RNG)可以分为两大类: 伪随机数生成器:它们使用确定性算法生成看似随机的数列。这些数列在理论上是可预测的,但通常对于大多数应用来说足够随机。真随机数生成器:它们基于物理过程(如热噪声、放射性衰变等)生成随机数,但 C++...
C++ 标准库 <numeric>
C++ 标准库 C++ 标准库中的 头文件提供了一组用于数值计算的函数模板,这些函数可以对容器中的元素进行各种数值操作,如求和、乘积、最小值、最大值等。这些函数模板非常强大,可以应用于任何类型的容器,包括数组、向量、列表等。在使用 头文件中的函数之前,需要在你的 C++ 程序中包含这个头文件:#include 常用函数 accumulateaccumulate 函数用于计算容器中所有元素的总和。它接受三个参数:容器的开始迭代器、结束迭代器和初始值。语法:template <InputIterator Iter, class T>T accumulate(Iter first, Iter last, T init);实例:实例 #include #include #include int main() { std::vector v = {1, 2, 3, 4, 5}; int sum = std::accumulate(v.begin(), v.end(), 0); std::cout << “Sum: “...
C++ 标准库 <locale>
C++ 标准库 在 C++ 标准库中,locale 类提供了一种机制来控制程序的本地化行为,特别是与语言和文化相关的格式设置和转换操作。locale 类在 #include 头文件中定义。C++ 标准库中的 locale 模块提供了一种方式,允许程序根据用户的区域设置来处理文本数据,如数字、日期和时间的格式化,以及字符串的比较和排序。这使得编写国际化应用程序变得更加容易。语法以下是使用 locale 类的基本语法:#include #include int main() { // 创建一个默认的 locale 对象 std::locale loc; // 使用 locale 对象 std::cout.imbue(loc); // 设置 cout 的 locale // 显示当前 locale 的名称 std::cout << "Current locale: " << loc.name() << std::endl; // 更多操作... return...
C++ 标准库 <mutex>
C++ 标准库 在多线程编程中,确保数据的一致性和线程安全是至关重要的。C++ 标准库提供了一套丰富的同步原语,用于控制对共享资源的访问。C++ 标准库中的 头文件提供了一组工具,用于在多线程程序中实现线程间的同步和互斥。 头文件是 C++11 引入的,它包含了用于互斥锁(mutex)的类和函数。互斥锁是一种同步机制,用于防止多个线程同时访问共享资源。互斥锁(Mutex)是一个用于控制对共享资源访问的同步原语。当一个线程需要访问共享资源时,它会尝试锁定互斥锁。如果互斥锁已经被其他线程锁定,请求线程将被阻塞,直到互斥锁被释放。基本语法在 C++ 中, 头文件提供了以下主要类: std::mutex:基本的互斥锁。std::recursive_mutex:递归互斥锁,允许同一个线程多次锁定。std::timed_mutex:具有超时功能的互斥锁。std::recursive_timed_mutex:具有超时功能的递归互斥锁。 实例 使用 std::mutex下面是一个简单的示例,展示了如何在 C++ 中使用 std::mutex 来同步对共享资源的访问。实例 #include...
C++ 标准库 <iterator>
C++ 标准库 C++ 标准库中的 头文件提供了一组工具,用于遍历容器中的元素。迭代器是 C++ 标准模板库(STL)中的核心概念之一,它允许程序员以统一的方式访问容器中的元素,而不需要关心容器的具体实现细节。迭代器是一个对象,它提供了一种方法来遍历容器中的元素。迭代器可以被视为指向容器中元素的指针,但它比指针更加灵活和强大。迭代器可以用于访问、修改容器中的元素,并且可以与 STL 算法一起使用。迭代器主要分为以下几类: 输入迭代器(Input Iterator):只能进行单次读取操作,不能进行写入操作。输出迭代器(Output Iterator):只能进行单次写入操作,不能进行读取操作。正向迭代器(Forward Iterator):可以进行读取和写入操作,并且可以向前移动。双向迭代器(Bidirectional Iterator):除了可以进行正向迭代器的所有操作外,还可以向后移动。随机访问迭代器(Random Access...
C++ 标准库 <iomanip>
C++ 标准库 是 C++ 标准库中的一个头文件,它提供了对输入/输出流的格式化操作。iomanip 库中的函数允许开发者控制输出格式,如设置小数点后的位数、设置宽度、对齐方式等。iomanip 是 Input/Output Manipulators 的缩写,它提供了一组操作符,用于控制 C++ 标准库中的输入/输出流的格式,适用以下场景:科学计算中浮点数格式的处理;数据对齐与美化;显示特定进制或格式的数值。语法iomanip 库中的函数通常与 << 和 >> 操作符一起使用,以实现对输出流的控制。以下是一些常用的 iomanip 函数:函数/操纵符功能实例代码输出结果std::setw(int n)设置字段宽度,为下一次输出指定宽度std::cout << std::setw(5) << 42;42std::setfill(char)设置填充字符(默认是空格)std::cout << std::setfill(‘*’) << std::setw(5)...