我们可以使用 pair 作为向量的名称吗?
Can we use pair as the name for a vector?
我遇到了一个表达:vector<int> pair(n)
。由于pair本身是一个内置结构,我们可以将它用作c++中的变量名吗?为什么??
std::pair
不是“内置结构”。它是来自标准库的限定名称。既然是合格的,一般不会和自己的名字冲突。
这正是命名空间被添加到 C++ 语言的原因。
是的,你可以。标准库中的模板称为 std::pair
和 std::vector
。它们不是内置的,因为它们不是语言的一部分,而是标准库的一部分。因此这不是问题:
#include <vector>
std::vector<int> pair(n);
可以使用 using 指令删除 std::
前缀:
#include <vector>
using std::vector;
vector<int> pair(n);
常用的也是using namespace std;
:
#include <vector>
using namespace std;
vector<int> pair(n);
不过,一旦将完整的命名空间拉入范围,代码可能会相当混乱。
阅读Why is “using namespace std;” considered bad practice?并尽量避免它。并给予专有名称。 std::pair
比较常见,所以你最好给vector起个好听的名字,肯定不是pair
.
As pair is an inbuilt structure in itself, can we use it as a variable name in c++ and why?
这是不正确的。 Standard Template Library provides a class template called "pair" 但那是 不是 一个 内置 类型,此外,“pair”既不是关键字也不是保留字C++语言。
此外,前面提到的“pair”模板实际上是在std
命名空间中提供的(在<utility>
header中),所以它完全合格 名字是 std::pair
。所以,除非你既 #include <utility>
(明确或隐含)并且是 using std::pair;
(或 using namespace std;
– 但 see here),你可以使用名称“pair”作为标识符,就像任何其他 non-reserved 词一样。
事实上,即使你做#include <utility>
和是using std::pair;
(或using namespace std;
),您可以仍然使用“pair”作为标识符,如comment by chris.
所述
我遇到了一个表达:vector<int> pair(n)
。由于pair本身是一个内置结构,我们可以将它用作c++中的变量名吗?为什么??
std::pair
不是“内置结构”。它是来自标准库的限定名称。既然是合格的,一般不会和自己的名字冲突。
这正是命名空间被添加到 C++ 语言的原因。
是的,你可以。标准库中的模板称为 std::pair
和 std::vector
。它们不是内置的,因为它们不是语言的一部分,而是标准库的一部分。因此这不是问题:
#include <vector>
std::vector<int> pair(n);
可以使用 using 指令删除 std::
前缀:
#include <vector>
using std::vector;
vector<int> pair(n);
常用的也是using namespace std;
:
#include <vector>
using namespace std;
vector<int> pair(n);
不过,一旦将完整的命名空间拉入范围,代码可能会相当混乱。
阅读Why is “using namespace std;” considered bad practice?并尽量避免它。并给予专有名称。 std::pair
比较常见,所以你最好给vector起个好听的名字,肯定不是pair
.
As pair is an inbuilt structure in itself, can we use it as a variable name in c++ and why?
这是不正确的。 Standard Template Library provides a class template called "pair" 但那是 不是 一个 内置 类型,此外,“pair”既不是关键字也不是保留字C++语言。
此外,前面提到的“pair”模板实际上是在std
命名空间中提供的(在<utility>
header中),所以它完全合格 名字是 std::pair
。所以,除非你既 #include <utility>
(明确或隐含)并且是 using std::pair;
(或 using namespace std;
– 但 see here),你可以使用名称“pair”作为标识符,就像任何其他 non-reserved 词一样。
事实上,即使你做#include <utility>
和是using std::pair;
(或using namespace std;
),您可以仍然使用“pair”作为标识符,如comment by chris.