C++ 库 - <cstdlib>



C++中的<cstdlib>库提供了各种用于执行常见操作的函数,例如内存管理、随机数管理和字符串转换。它是C标准库的一部分,在处理低级操作时非常有用。

在C++中,当与C风格的操作交互或处理低级内存管理时,使用<cstdlib>。虽然C++有自己的内存分配和类型转换替代方案,但<cstdlib>提供的函数在某些情况下仍然被广泛使用。

包含<cstdlib>头文件

要在你的C++程序中包含<cstdlib>头文件,可以使用以下语法。

#include <cstdlib>

<cstdlib>头文件的函数

以下是<cstdlib>头文件中所有函数的列表。

字符串转换

这些函数用于将字符串(C风格字符串)转换为数值,例如整数和浮点数,或将数字转换为字符串。常用的C++ <cstdlib>字符串转换函数如下所示,以及它们的描述。

序号 函数及描述
1 atof

它将字符串转换为浮点值。

2 atoi & atol & atoll

它将字符串转换为整数值。

3 strtoul & strtoull

它将字符串转换为无符号整数值。

4 strtof & strtod & strtold

它将字符串转换为浮点值。

字符串到整数转换

在下面的示例中,我们将使用atoi将字符串转换为整数。

#include <iostream>
#include <cstdlib>
int main() {
   const char * x = "11123";
   int y = std::atoi(x);
   std::cout << "Result : " << y << std::endl;
   return 0;
}

输出

以上代码的输出如下:

Result : 11123

进程控制

这些函数用于管理和控制程序执行。它们包括程序终止、环境操作和进程处理等操作。常用的C++ <cstdlib>进程控制函数如下所示,以及它们的描述。

序号 函数及描述
1 abort

它导致程序终止。

2 exit

它导致程序终止并进行清理。

3 atexit

它注册一个将在exit()调用时调用的函数。

4 quick_exit

它导致程序终止,但不完全清理。

5 at_quick_exit

它注册一个将在quick_exit()调用时调用的函数。

6 _Exit

它用于终止调用进程。

终止程序

让我们看下面的例子,我们将立即终止程序。

#include <cstdlib>
#include <iostream>
int main() {
   std::cout << "Program Started" << std::endl;
   if (true) {
      std::cout << "Exiting Program..." << std::endl;
      std::exit(0);
   }
   std::cout << "Hello" << std::endl;
   return 0;
}

输出

以下是以上代码的输出:

Program Started
Exiting Program..

内存管理

内存管理是指分配和释放内存的过程。常用的C++ <cstdlib>内存管理函数如下所示,以及它们的描述。

序号 函数及描述
1 calloc

它用于为数组分配内存并将所有元素初始化为零。

2 free

它用于释放之前分配的内存。

3 malloc

它用于分配内存。

4 realloc

它用于扩展或缩小之前分配的内存。

内存分配

考虑下面的例子,我们将动态地分配一块内存。

#include <iostream>
#include <cstdlib>
int main() {
   int * x = (int * ) std::malloc(4 * sizeof(int));
   if (x == nullptr) {
      std::cerr << "Memory Allocation Failed." << std::endl;
      return 1;
   }
   for (int a = 0; a < 4; ++a) {
      x[a] = a * 2;
      std::cout << x[a] << " ";
   }
   std::cout << std::endl;
   std::free(x);
   return 0;
}

输出

如果我们运行上面的代码,它将生成以下输出:

0 2 4 6
广告