Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.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++ 有什么好的替代方案可以替代“报价单”呢;使用名称空间std&引用;?_C++_Namespaces_Std - Fatal编程技术网

C++ 有什么好的替代方案可以替代“报价单”呢;使用名称空间std&引用;?

C++ 有什么好的替代方案可以替代“报价单”呢;使用名称空间std&引用;?,c++,namespaces,std,C++,Namespaces,Std,我理解使用名称空间std有问题(例如,阅读的答案) 除了像那样导入标准名称空间,还有什么好的替代方法 我想知道我能做些什么来改进我的代码。另一种方法是到处写std::。因为名字冲突和不清楚,人们不赞成它。如果你只是写向量,我不知道你是在用数学3d向量还是标准库向量或者其他什么。如果你写的是std::vector,它就清楚了。如果你使用namespace std,vector可能会与我自己的名为vector的3d数学类发生冲突,这是使用namespace std将std命名空间中的所有内容纳入全局

我理解
使用名称空间std有问题(例如,阅读的答案)

除了像那样导入标准名称空间,还有什么好的替代方法


我想知道我能做些什么来改进我的代码。

另一种方法是到处写
std::
。因为名字冲突和不清楚,人们不赞成它。如果你只是写向量,我不知道你是在用数学3d向量还是标准库向量或者其他什么。如果你写的是
std::vector
,它就清楚了。如果你
使用namespace std
vector
可能会与我自己的名为
vector
的3d数学类发生冲突,这是使用namespace std将
std
命名空间中的所有内容纳入全局命名空间的主要替代方法包括:

  • 只带上你需要的真实姓名。例如,只需使用std::vector将
    vector
    引入

  • 使用名称时始终使用显式命名空间限定。例如
    std::vector v(在标题中,这几乎总是您要做的唯一事情)

  • 引入所有名称,但要缩小范围(就像只在函数内部)。例如
    void f(){使用名称空间std;vector v;}
    -这不会污染全局名称空间


  • 欢迎来到堆栈溢出!我已经对你的问题做了一个调整,把注意力集中在我找不到好答案的部分。这是一个相当激烈的编辑,但我认为它提出了一个可以重新打开和有用的问题。这不是唯一的选择。。