gpt4 book ai didi

c++ - 非常奇怪的卡在 for 循环初始化

转载 作者:行者123 更新时间:2023-11-30 01:28:48 24 4
gpt4 key购买 nike

我有一个非常奇怪的错误,我似乎无法弄清楚。我已将它缩小到一小段代码(除非编译器正在重新排序我的语句,我认为这不是真的)。​​

...
std::cout << "here"<< std::endl;
std::vector<int>::iterator n_iter;
std::vector<int>::iterator l_iter;
std::cout << "here?" << std::endl;
for(n_iter = n.begin(), std::cout << "not here" ; std::cout << "or here" && n_iter < n.end(); n_iter++)
{
std::cout << "do i get to the n loop?";
...
}

当我运行它时,我看到第一个“这里”,第二个“这里?”,但我没有得到“不在这里”或“或这里”的输出。而且我绝对不明白“我是否进入第 n 个循环?”。

奇怪的是我的程序正在运行(它几乎用完了整个 cpu 核心...),但它没有完成,只是挂起。

我试过使用 clang++ 和 g++,但我没有使用任何优化。我安装了 boost 库(并且正在使用其中的 boost_program_options 部分)以及 Armadillo 。但我认为编译器不应该重新排序...

在 for 循环声明中有或没有 cout 调用都会发生,它不会跳过循环。

vector “n”的长度至少为 1,由 boost_program_options 调用给出。

有什么想法吗?

最佳答案

您应该尝试的第一件事是在每个字符串之后输出 std::endl。这会刷新输出缓冲区。

关于c++ - 非常奇怪的卡在 for 循环初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com