我已经编码了好几年了,但最近才开始接触 C++。
我已经在其中制作了很多程序,但最近开始遇到一些奇怪的行为。这些案例很简单,我认为这是我的环境错误,而不是语言本身的错误,但我已经陷入了死胡同。
考虑这个简单的程序:
#include <iostream>
using namespace std;
int main() {
cout << "Test" << endl;
return 0;
}
如果我编译并运行它,正如预期的那样,我会在控制台中得到“测试”。现在,如果我向它添加一个 vector :
#include <iostream>
#include <vector>
using namespace std;
int main() {
cout << "Test" << endl;
vector<double> whatever;
return 0;
}
出于某种原因,我没有从中得到任何输出。我尝试将 vector 初始化为空 vector 以及预定义的值。
我尝试添加一个从 0 到 2^32 运行的 for 循环,以查看程序是否完全失败,或者它是否只是输出。这就是事情变得更奇怪的地方。
起初,我在定义 vector 之前放置了循环;这导致 cout 突然再次工作(即在控制台中打印了“测试”),并按预期停止程序。然后我将 for 循环移动到 vector 定义之后,然后它完全中断了;我没有收到任何输出,程序几乎立即退出,没有错误。
当我删除
using namespace std;
时问题仍然存在并加上我的 cout
和 vector
与 std::
我使用 MinGW 的 g++ v6.3 编译器。我正在运行 Windows 10。我知道这个问题可能很难重现,但我会在把我的电脑扔出窗外之前在这里碰碰运气。
提前致谢。
编辑:我使用 Cygwin 而不是 MinGW 解决了这个问题。如果有人遇到类似的问题并且有一个不涉及放弃 MinGW 的修复,我会留下这个问题
最佳答案
我正在运行Linux并运行代码,它运行成功。
所以这一定是编译器的问题。
也许尝试使用不同的编译器,如 Cygwin/Microsoft Windows SDK。
关于c++ - 定义 vector 中断程序 - MinGW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69681649/