c++ - 定义 vector 中断程序 - MinGW

标签 c++ g++ mingw

我已经编码了好几年了,但最近才开始接触 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; 时问题仍然存在并加上我的 coutvectorstd::我使用 MinGW 的 g++ v6.3 编译器。我正在运行 Windows 10。
我知道这个问题可能很难重现,但我会在把我的电脑扔出窗外之前在这里碰碰运气。
提前致谢。
编辑:我使用 Cygwin 而不是 MinGW 解决了这个问题。如果有人遇到类似的问题并且有一个不涉及放弃 MinGW 的修复,我会留下这个问题

最佳答案

我正在运行Linux并运行代码,它运行成功。
所以这一定是编译器的问题。
也许尝试使用不同的编译器,如 Cygwin/Microsoft Windows SDK。

关于c++ - 定义 vector 中断程序 - MinGW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69681649/

相关文章:

c++ - 使用 boost::mpi 的 mpi 中的消息大小是否有限制?

c++ - 为什么 LLVM 完全展开我的循环?

qt - 将 QT 应用程序从 Linux 移植到 Windows?

c - GTK+/GCC 启动时崩溃

c++ - 为什么使用 'if' 语句可以提供更好的性能?

c++ - 通用引用忽略顶级简历限定符

c++ - 为什么这段代码在 Clang++ 中有效,但在 G++ 中无效?

C++0x 编译器支持问题

c++ - 以下代码的符合 ISO C++ 标准的结果

c++ - 假 ||在 MinGW 编译器 v 6.3.0-1 中给出 0