Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;使用stl向量_C++_Stl_Namespaces_Std - Fatal编程技术网

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;代码>被认为是不好的做法。下面是一个解释: