我已经告诉别人,编写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
我刚刚开始进入C++,我想养成一些好习惯.如果我刚刚int使用new运算符分配了一个类型的数组,我怎么能将它们全部初始化为0而不用自己循环遍历它们?我应该用memset吗?有没有"C++"方法呢?
我知道这听起来像是一个普遍的问题而且我已经看过很多类似的问题(无论是在这里还是在网上),但它们都不是真的像我的困境.
说我有这个代码:
void GetSomeData(char* buffer)
{
// put some data in buffer
}
int main()
{
char buffer[1024];
while(1)
{
GetSomeData(buffer);
// do something with the data
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我在全局声明缓冲区[1024],我会获得任何性能吗?
我通过time命令在unix上运行了一些测试,执行时间之间几乎没有差异.
但我真的不相信......
理论上,这种变化应该有所作为吗?
c++ ×4
c++-faq ×2
c ×1
heap ×1
implementation-defined-behavior ×1
namespaces ×1
new-operator ×1
performance ×1
portability ×1
stack ×1
std ×1
turbo-c++ ×1