C 检查所有int数组元素是否等于特定数字的最短代码?

C 检查所有int数组元素是否等于特定数字的最短代码?,c,arrays,arduino,equality,C,Arrays,Arduino,Equality,用if..else语句检查所有int数组元素是否等于某些数字的最短方法是什么?例如,在伪代码中: if (allElementsOfIntArray == -1) //do something else if (allElementsOfIntArray == 1) //do something else 我还有另一个变量是const int arraySize 我的Arduino代码在这一点上变得非常混乱,所以我只是想找到最短的方法来实现它,这样对其他必须阅读它的人来说就不会显得一

用if..else语句检查所有int数组元素是否等于某些数字的最短方法是什么?例如,在伪代码中:

if (allElementsOfIntArray == -1)
   //do something
else if (allElementsOfIntArray == 1)
  //do something else
我还有另一个变量是
const int arraySize

我的Arduino代码在这一点上变得非常混乱,所以我只是想找到最短的方法来实现它,这样对其他必须阅读它的人来说就不会显得一团糟了

bool all_are(int* i_begin, std::size_t sz, int x)
{
    const int* i_end = i_begin + sz;
    for(; i_begin != i_end; ++i_begin)
        if(*i_begin != x) return false;

    return true;
}


突然想到的最快方法(假设数组未排序)就是遍历它并检查每个元素。你可以用几种方法来做到这一点。对循环使用正常的
,或对每个
尝试一个

突然想到的最快方法(假设数组未排序)就是遍历它并检查每个元素。你可以用几种方法来做到这一点。对
循环使用正常的
,或对每个
尝试一个

首先检查所有条目是否相同,然后检查
开关()


for(int i=1;i首先检查所有条目是否相同,然后检查
switch()


用于(int i=1;i数组中的每个元素都独立于其他元素。因此必须使用for来检查所有元素以确保。

数组中的每个元素都独立于其他元素。因此必须使用for来检查所有元素以确保。

for
语句中缺少
i_end
。在
for
语句中缺少
i_end
耳鼻喉科。
if (all_are(my_array, arraySize, -1))
   //do something
else if (all_are(my_array, arraySize, 1))
  //do something else
for (int i=1; i<arraysize; i++)
   if (theArray[0] != theArray[i]) return "no way";

/*** All array elements are the same, so we can evaluate any element ***/

switch (theArray[0]) 
{
   case 0:
        return "All are zero";
   case 1:
        return "All are one";
   default:
        return "All elements are the same";
}