Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';我不明白为什么while循环是无限的_C++ - Fatal编程技术网

C++ Can';我不明白为什么while循环是无限的

C++ Can';我不明白为什么while循环是无限的,c++,C++,我的代码使用了我认为简单的while循环。它检查randCard是否已经存在于我拥有的向量中,如果已经存在,则生成一个新的randCard 我在循环中添加了cout语句,试图找到它正在运行的进程,并发现它只在while循环中运行,没有嵌套的for循环。问题如下: bool isSame=true; //确保它们不是同一张牌 while(IsName){ cout对于任何可能偶然发现这个问题的人,答案在注释中得到了解决。向量的大小为0,因此For循环甚至没有运行。对于任何可能偶然发现这个问题的人,

我的代码使用了我认为简单的while循环。它检查
randCard
是否已经存在于我拥有的向量中,如果已经存在,则生成一个新的
randCard

我在循环中添加了
cout
语句,试图找到它正在运行的进程,并发现它只在while循环中运行,没有嵌套的for循环。问题如下:

bool isSame=true;
//确保它们不是同一张牌
while(IsName){

cout对于任何可能偶然发现这个问题的人,答案在注释中得到了解决。向量的大小为0,因此For循环甚至没有运行。

对于任何可能偶然发现这个问题的人,答案在注释中得到了解决。向量的大小为0,因此For循环甚至没有运行。

它看起来像是
notouse
的大小为0,但是,使用给定的代码进行调试是不可能的。请尝试在for循环外部和while循环内部记录
notouse.size()
。我首先要检查的是
notouse.size()
是什么。您能发布足够的代码,让我们可以自己测试和运行它吗?(如果有很多,请使用像pastebin.com这样的网站)。我要检查的第一件事是确保
notouse.size()
大于0(因为如果它是0,它将永远不会进入for循环)它检查随机卡是否已经存在于我拥有的向量中,如果已经存在,则生成一个新的随机卡。--根据该描述,所有这些代码都可以被一个简单的替换:
auto iter=std::find(notouse.begin(),notouse.end(),randCard);if(iter!=notouse.end())randCard=rand%24;
@Idalas——基本上,如果您编写的代码感觉“这件事以前肯定做过数千次”,通常有一个或两个STL算法来完成此任务。检查容器是否包含值只是其中一个实例。它看起来像
notouse
的大小为0,但无法使用给定的代码进行调试。请尝试记录
notouse.size()
在for循环外部和while循环内部。我要检查的第一件事是什么
notouse.size()
是什么。你能发布足够的代码让我们自己测试并运行它吗?(如果有很多,请使用像pastebin.com这样的网站)。我要检查的第一件事是确保
notouse.size()
大于0(因为如果它是0,它将永远不会进入for循环)它检查randCard是否已经存在于我拥有的向量中,如果已经存在,则生成一个新的randCard。--按照这个描述,所有这些代码都可以被一个简单的替换:
auto iter=std::find(notouse.begin(),notouse.end(),randCard);if(iter!=notouse.end())randCard=rand%24;
@Idalas——基本上,如果您编写的代码感觉“这件事以前肯定做过数千次”,通常有一两个STL算法来完成这项工作。检查容器是否包含值只是其中一个实例。感谢您回复我们!感谢您回复我们!
While entered
While entered
While entered
While entered
While entered