C++ c++;使用stl向量
我对向量的使用有点困惑。我们通常打字C++ c++;使用stl向量,c++,stl,namespaces,std,C++,Stl,Namespaces,Std,我对向量的使用有点困惑。我们通常打字 #include <vector> #包括 首先。那么为什么我们在使用vector时还需要附加vector的名称空间,比如: std::vector<int> a; std::向量a; 为什么不 vector<int> a; 向量a; 创建名称空间是为了避免命名冲突。您的代码中可能还有其他内容,如vector。但是,您可以使用使用名称空间std-它允许您这样使用它(以及std名称空间中的任何其他内容):向量a(当
#include <vector>
#包括
首先。那么为什么我们在使用vector时还需要附加vector的名称空间,比如:
std::vector<int> a;
std::向量a;
为什么不
vector<int> a;
向量a;
创建名称空间是为了避免命名冲突。您的代码中可能还有其他内容,如vector
。但是,您可以使用使用名称空间std代码>-它允许您这样使用它(以及std名称空间中的任何其他内容):向量a代码>(当然,如果没有名称冲突)< p>每个<代码> >包含指令,其中包括来自C++标准库的一些东西“加载”实体到 STD< /Cord>命名空间(或其他一些命名空间)。
名称空间有助于防止全局名称空间污染-通过将所有内容保持在单独的名称空间中,标识符冲突变得不可能
在
文件中,有如下内容
namespace std {
template<typename T> class vector {
...
};
}
名称空间std{
模板类向量{
...
};
}
如您所见,vector
模板仍然位于std
名称空间中
总之,您可以使用#include
预处理器指令来使用头文件中提供的一些工具。文件内容以文本形式替换#include
指令。
不过,这些工具位于不同的命名空间中,以防止名称冲突。如果需要同时使用此vector
和某个数学库的vector
类,该怎么办?首先,我认为您应该确定include语句和命名空间之间的区别。请参考此线程(开始):您可能想了解有关头文件和名称空间的更多信息。谢谢您的回答。现在更清楚了。所以“include语句”似乎没有指定调用库的路径。需要更多的审查为什么C++将这两个过程分开。不要使用命名空间STD<代码>代码>使用STD:<代码>:向量< /代码>对于严肃的程序<代码>使用命名空间STD;>代码>被认为是不好的做法。下面是一个解释: