我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::cout和std::cin直接代替.
为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?
我正在尝试将我的C++编译器更新为C++ 11.我已经搜索了一下,我得出的结论是我必须使用旗帜,-std=c++0x或者-std=gnu++0x我不知道很多关于旗帜的事情.谁能帮我?(我正在使用Ubuntu 12.04.)
这是我尝试使用C++ 11中包含的库(即数组)时从编译器获得的错误:
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
Run Code Online (Sandbox Code Playgroud)
此文件需要编译器和库支持即将推出的ISO C++标准C++ 0x.此支持目前是实验性的,必须使用-std = c ++ 0x或-std = gnu ++ 0x编译器选项启用.
我在Effective STL中注意到了
vector是默认情况下应该使用的序列类型.
这是什么意思?似乎忽略效率vector可以做任何事情.
任何人都可以给我一个vector不可行的选择但list必须使用的场景吗?