c++ 使用 stl 向量
c++ using stl vector
我对向量的使用有点困惑。我们通常输入
#include <vector>
首先。那为什么我们在使用的时候还要加上vector的名字space,比如:
std::vector<int> a;
为什么不
vector<int> a;
命名空间的创建是为了避免命名冲突。您的代码中可能还有 vector
之类的东西。但是您可以使用 using namespace std;
- 它允许您像这样使用它(以及 std 命名空间中的任何其他内容):vector a;
(当然如果没有名称冲突)
每个 #include
指令包括来自 C++ 标准库的内容 "loads" 实体到 std
命名空间(或其他一些命名空间,如 this)。
命名空间有助于防止全局命名空间污染 - 通过将所有内容保存在单独的命名空间中,标识符冲突就不可能发生。
在<vector>
文件中,然后有类似
的东西
namespace std {
template<typename T> class vector {
...
};
}
如您所见,vector
模板仍在 std
命名空间中。
总之,您使用 #include
预处理器指令来使用头文件中提供的一些工具。该文件的内容以文本方式替换了 #include
指令。
不过,这些设施位于不同的命名空间中,以防止名称冲突。
我对向量的使用有点困惑。我们通常输入
#include <vector>
首先。那为什么我们在使用的时候还要加上vector的名字space,比如:
std::vector<int> a;
为什么不
vector<int> a;
命名空间的创建是为了避免命名冲突。您的代码中可能还有 vector
之类的东西。但是您可以使用 using namespace std;
- 它允许您像这样使用它(以及 std 命名空间中的任何其他内容):vector a;
(当然如果没有名称冲突)
每个 #include
指令包括来自 C++ 标准库的内容 "loads" 实体到 std
命名空间(或其他一些命名空间,如 this)。
命名空间有助于防止全局命名空间污染 - 通过将所有内容保存在单独的命名空间中,标识符冲突就不可能发生。
在<vector>
文件中,然后有类似
namespace std {
template<typename T> class vector {
...
};
}
如您所见,vector
模板仍在 std
命名空间中。
总之,您使用 #include
预处理器指令来使用头文件中提供的一些工具。该文件的内容以文本方式替换了 #include
指令。
不过,这些设施位于不同的命名空间中,以防止名称冲突。