将值与一个语句中的所有数组元素进行比较

时间:2010-06-30 00:26:59

标签: c++

例如:

if (value == array[size]) //if the value (unique) is present in an array then do something

可以在一个语句中完成,而不必调用函数或基本for循环语句吗?

3 个答案:

答案 0 :(得分:5)

std::find可以在一个语句中完成,但它并不像其他语言那样简单:(

int array[10];
if (array + 10 != find(array, array + 10, 7)) {
  cout << "Array contains 7!";
}

std::count

if (int n = count(array, array + 10, 7)) {
  cout << "Array contains " << n << " 7s!";
}

答案 1 :(得分:4)

根据问题,您可能希望使用set。它有一个名为count()的成员函数,可以告诉您集合中是否存在某些内容:

if(myset.count(value) > 0){
    doThings();
}

答案 2 :(得分:2)

没有内置的操作员可以做这样的事情。

有许多方法可以执行测试,因为它似乎是来自外部的单个声明。其中一些使用标准库已经提供的部分,因此您不必自己编写很多代码。但是,它们将不可避免地在某些你已经排除的函数调用和/或循环中使用。

所以考虑到你问题中的限制:不,没有办法。