我想检查数组中的所有value
:
// if the value (unique) is present in an array then do something
if (value == array[size])
这个能不能在一个语句中完成,而不需要调用函数或基本的for循环语句?
std::find
可以在一条语句中完成,但这并不像其他语言那样简单 :(
int array[10];
if (end(array) != find(begin(array), end(array), 7)) {
cout << "Array contains 7!";
}
std::count
函数:if (int n = count(array, end(array), 7)) {
cout << "Array contains " << n << " 7s!";
}
contains
辅助函数更简单。 - Stephenbegin()
/end()
来改进,或者意图不够清晰,在这种情况下可以使用一些 contains()
实用函数。 - Georg Fritzsche根据问题的不同,您可能需要使用 set
。它有一个名为count()
的成员函数,可以告诉您集合中是否存在某个元素:
if(myset.count(value) > 0){
doThings();
}
if(myset.find(value) != myset.end()) { /*太好了!*/ }
- Anthonystd::map::find
的方式也是一样的。 - Anthony没有内置的运算符可以完成这样的操作。
有许多方法可以执行测试,看起来从外部来看似乎是一个单一的语句。其中一些方法使用标准库已经提供的部分,因此您不必自己编写太多代码。然而,它们不可避免地会在某个时刻使用某种形式的函数调用和/或循环,这些都是您已经排除的。
因此,考虑到您问题中的限制:不,没有任何方法。