Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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++ C++;-在循环参数内处理列表的更有效方法_C++_List_While Loop_Arguments - Fatal编程技术网

C++ C++;-在循环参数内处理列表的更有效方法

C++ C++;-在循环参数内处理列表的更有效方法,c++,list,while-loop,arguments,C++,List,While Loop,Arguments,正如标题所说。例如,您有一个值列表char values[11],并且希望在循环参数中循环该列表: while(something not in values[]) { doSomething(omgwtfbbq) } 当然,它在C++中是不起作用的…我想大概是这样。至少“not”关键字不存在 有人能建议是否有解决方案吗?您可以使用@Deepu建议的方法,但更干净、更可靠的解决方案是使用系统中存在的事件机制。在一个线程上,您将等待所需的按键事件,在另一个线程上,您将截获按键中断并分析数

正如标题所说。例如,您有一个值列表char values[11],并且希望在循环参数中循环该列表:

while(something not in values[])
{
    doSomething(omgwtfbbq)
}
当然,它在C++中是不起作用的…我想大概是这样。至少“not”关键字不存在


有人能建议是否有解决方案吗?

您可以使用@Deepu建议的方法,但更干净、更可靠的解决方案是使用系统中存在的事件机制。在一个线程上,您将等待所需的按键事件,在另一个线程上,您将截获按键中断并分析数据。如果它包含所需的值,请指出所需的按键事件。

好,因此问题已解决,但在评论中回答我的人没有发布完整的回复,因此我将在此处发布答案

将列表更改为向量
向量值[4]
。然后使用Raymond Chen建议的查找函数:

while(find(values.begin(),values.end(),something)==values.end())
{
    doSomething(eatBananas)
}

如果Raymond Chen给出了明确的答案,我将在技术上标记他的.

代码> > <代码>不是关键字,而是C++中的一个重新定义的标识符。然而,这种区别是非常微妙的。对于不允许你直接使用<代码> > <代码>的编译器,尝试包括 标头(这样的编译器是不符合的,但是:标准C++需要支持<代码>不/代码>而不使用该标头)。虽然现在已经被认可了。是的,我不能让它工作。我对C++的知识有限,你确信你需要<代码>(不是在值[]中的东西)< /C> >而不是<代码>(如果不是值[])< /C> > ^我试图在控制台应用程序中写一个错误检查。因此,逻辑实际上需要一个循环:当用户没有从列表中输入值时=>继续循环循环,直到输入了一个可接受的值。但是,如果您碰巧没有使用上述方法建议一个替代方案,但效果相同,我将很乐意接受它。
while(std::find(&values[0],&values[11],something)=values[11]){…}
。如果说
int*first=&values[0],可读性更高;int*last=&values[11]
首先,然后可以说
while(std::find(first,last,something)==last)
。[我花了一段时间才弄明白你想做什么。起初,我以为你想要
什么
来枚举
值中不包含的所有整数,
…]em。。。好啊我不完全明白你在说什么。这听起来像GUI程序会使用的东西,是事件驱动的。但是控制台应用程序呢?根据具体情况,向用户提供不同数量的可能“正确”答案。我的理解正确吗?没有任何东西会限制GUI应用程序,这是一种通用方法。那么,我怀疑我是否能够在当前状态下实现这一点。我不知道控制台应用程序中的线程和事件。