使用std :: vector和include <vector>之间的区别

时间:2016-01-26 22:49:36

标签: c++ include

我注意到有些人喜欢

#include <vector>

和其他人更喜欢

using std::vector;

有区别吗?我无法在SO上找到关于此的帖子。

在我的代码中从一个代码更改为另一个代码可以获得不少/额外的错误。

谢谢

2 个答案:

答案 0 :(得分:1)

使用#include <vector>时必须

vector

using std::vector;是可选的,因为这样可以避免在声明向量时输入std::

vector<int> v;         // no need  prefix std::

答案 1 :(得分:1)

这些在某种程度上是相关的,但两者都没有取代另一个。

#include <vector>

这使得vector的声明可见,因此您可以定义vector<T>类型的对象(对于某些类型T),定义按值vector的函数,按值返回矢量等

using std::vector;

这使vector的声明可见,而不必使用它所在的命名空间的名称(std)来限定它,例如,定义vector int的{​​{1}},您可以使用:

vector<int> x;

...而不是:

std::vector<int> x;

...当您在没有#include <vector>声明的情况下完成using时,您需要这样做。