我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::cout和std::cin直接代替.
为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
我在我的代码中发布了一个问题,其唯一的#include指令如下:
#include <bits/stdc++.h>
Run Code Online (Sandbox Code Playgroud)
我的老师告诉我这样做,但在评论部分,我被告知我不应该这样做.
为什么?
c++ portability c++-faq turbo-c++ implementation-defined-behavior
在表达式中a + b,a保证在之前进行评估b,还是未指定评估的顺序?我认为这是后者,但我很难在标准中找到明确的答案.
由于我不知道C是否处理与C++有所不同,或者如果在C++ 11中简化了评估顺序规则,我将把这个问题标记为三个.
为了表达
(func1() * func2()) + func3()
Run Code Online (Sandbox Code Playgroud)
将func1()*func2()首先计算,因为它有括号或可以按任何顺序调用函数
首先是func3()然后是(func1()*func2())
c++ ×4
c ×2
c++-faq ×2
c++11 ×1
expression ×1
implementation-defined-behavior ×1
namespaces ×1
portability ×1
std ×1
turbo-c++ ×1