C++学习笔记之基础知识

C++学习笔记

  • 参考文章
  • 一、基础知识
    • 1.头文件
      • 标准库头文件
    • 2.STL库
    • 3.预处理命令

参考文章

C++教程(最全)

一、基础知识

1.头文件

#include 是C++编程中的一个预处理指令,用于在编译前将指定文件的内容包含到当前的文件中。它的作用在于将所包含文件的内容作为指令的复制来插入到该指令的位置,从而将多个代码模块组合成一个程序。

  • 通常用于包含头文件(.h或.hpp文件),这些头文件中包含了函数声明、宏定义和类型定义等。通过包含头文件,程序能够链接到所需的函数库,并在编译时获得相应的代码实现。
  • 还可以用于包含其他类型的文件,如源代码文件(.c、.cpp、.cxx等)。这种用法通常在某些特定的编程场景中,例如模板编程或宏定义中。

需要注意的是,过度使用#include指令可能会增加编译时间 ,因为每个包含的文件都需要单独编译并链接到最终的程序中。

标准库头文件

iostream: 提供标准输入输出流对象(例如cin和cout)。
fstream: 用于文件输入和输出操作。
sstream: 用于字符串的输入输出操作(例如使用stringstream类)。
iomanip: 提供输入输出格式操作。
string: 包含字符串类的定义。
algorithm: 提供常用算法的声明。
vector: 提供向量容器类的定义。
map, set: 提供关联容器类的定义。
deque, list: 提供双端队列和列表容器类的定义。
queue, stack: 提供队列和栈容器类的定义。
cstdio,stdio.h: 提供C风格的输入输出函数(例如printf和scanf)。
cstdlib: 包含C标准库的函数(例如malloc, free, rand, srand等)。
cstring: 包含处理C风格字符串的函数(例如strlen, strcpy, strcat等)。
ciso646: 定义一些逻辑操作符。
cwchar: 提供宽字符和宽字符串处理函数。
其他库的头文件:
对于图形用户界面(GUI)编程,需要包含特定GUI库的头文件,例如Qt的或wxWidgets的
对于网络编程,可能需要包含如<sys/socket.h>或Boost.Asio这样的库的头文件。
特定于平台的头文件:
对于Windows平台,可能需要包含如<windows.h>这样的头文件。
对于POSIX系统(如Linux或macOS),可能需要包含如<unistd.h>或<fcntl.h>这样的头文件。

#includeusing namespace std 的区别与联系

#include,用于包含 头文件。 头文件是 C++ 标准库中的一个头文件,它定义了 std::vector 类模板,这是一个动态数组模板类。

using namespace std,这个声明是为了使用 std 命名空间中的名称而不需要前缀 std::。例如,如果你写了 using namespace std;,那么你可以直接使用 vector 而不需要写 std::vector

注意:
在代码中使用 std::vector 时,需要包含 头文件。即使包含了 头文件,如果没有使用 using namespace std;,仍然需要写 std::vector 来使用它。但如果使用了 using namespace std;,你就可以直接写 vector(前提是编译器有标准库的链接)。

使用 using namespace std; 时要小心,因为它可能会导致名称冲突。
例如,如果你的代码中有自己的函数或类也叫 vector,那么这可能会引起问题。在这种情况下,更好的做法是明确地使用 std:: 前缀或者只从 std 命名空间中引入你需要的特定名称(例如 using std::vector;)。

2.STL库

STL(Standard Template Library)即标准模板库,是一种泛型编程的库,其目标是提供一种方法来描述和实现算法,数据结构以及容器。STL是惠普实验室开发的一系列软件的统称,它包括一些基本的数据结构和算法,如vector、list、set、map等,以及一些基本的算法如排序、查找、迭代等。
STL的目的是标准化组件,这样就可以避免重复的劳动,并且可以使用现成的组件。STL是C++的一部分,因此不需要安装额外的库文件。STL包括算法、容器和函数三个部分。

3.预处理命令

你可能感兴趣的:(C++自学快速入门,c++,学习,笔记)