【发布时间】:2013-03-21 12:50:31
【问题描述】:
正如标题所说。例如,您有一个值列表 char values[11] 并且您想在循环参数内循环遍历该列表:
while(something not in values[])
{
doSomething(omgwtfbbq)
}
但当然它在 C++ 中不起作用……至少我是这么认为的。至少“not”关键字不存在。
谁能建议这是否有溶剂?
【问题讨论】:
-
技术上
not不是关键字,而是C++ 中的保留标识符。但是,这种区别非常微妙。对于不允许您直接使用not的编译器,请尝试包含<iso646.h>标头(这样的编译器不符合标准,但是:标准 C++ 需要支持not而不使用该标头) -
我包含了
并尝试使用:while (something not in values[]) but not 被突出显示为未定义。虽然现在已经被认出来了。是的,我无法让它工作。到目前为止,我对 C++ 的了解还很有限。 -
您确定需要
while(something not in values[])而不是if(something not in values[])? -
^ 我正在尝试在控制台应用程序中编写错误检查。所以逻辑,实际上需要一个循环:当用户没有从列表中输入值时 => 继续循环循环,直到输入一个可接受的值。但如果你碰巧提出了一个替代方案,没有使用上述方式,但效果相同,我很乐意接受。
-
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)。 [我花了一段时间才弄清楚你想做什么。一开始,我以为你想让something枚举所有不在values中的整数...]
标签: c++ list while-loop arguments