假设我有一个数组
稍微调整一下,结果可能会产生巨大的误差。
我的尝试是使用
还有其他方法吗?
short int check[10] = {1,1,1,1,1,1,1,1,1};
。
我想检查所有元素是否都相同。
我在stackoverflow
和google
上找不到答案,但我发现了这段C++
代码。bool aresame(int a[], int n)
{
int i;
unordered_map<int, int> m;
for (i = 0; i < n; i++)
{
m[a[i]]++;
}
if (m.size() == 1)
{
return true;
}
else
{
return false;
}
}
稍微调整一下,结果可能会产生巨大的误差。
我的尝试是使用
if
语句,但那很不专业。还有其他方法吗?
if
是不专业的?遍历数组并将其与第一个条目进行比较。for (i=1; i<n; ++i) if (a[i] != a[0]) return false; return true;
- Ashley Millerif
比递增map元素更加“专业”。 - William Pursellif
的一个分支中使用return
,那么其后的所有内容都会默认成为else
,因此你可以跳过那部分并将其压缩一下。 - tadman