首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数组作为Whille循环条件

使用数组作为Whille循环条件
EN

Stack Overflow用户
提问于 2015-01-04 19:15:30
回答 6查看 105关注 0票数 1

我正在尝试指定一个条件,方法是如果数组不等于数组运行循环。例如:

array1 1,2,3

array2 1,2,3

在这里,array1等于array2,因为两个数组中0中的元素是相同的,两个数组中的1中的元素是相同的,依此类推。

到目前为止,我掌握的代码似乎不起作用。是否有方法比较两个数组,如果一个数组中的所有元素都匹配第二个数组中的所有元素,则条件为真。

这是我的测试代码:

代码语言:javascript
复制
int C1Mean[3];
int C2Mean[3];
int prv_mean1[3];
int prv_mean2[3];

while (C1Mean[3] = prv_mean1[3] && C2Mean[3] = prv_mean2[3])
{
    //code
}

谢谢各位。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-01-04 19:22:15

如注释所示,您访问超出界限的数组,您将使用赋值(单个=)或比较(==)。

若要比较数组(逐元素),可以使用std::equal

代码语言:javascript
复制
while(std::equal(std::begin(C1Mean), std::end(C1Mean), std::begin(prv_mean1))
   && std::equal(std::begin(C2Mean), std::end(C2Mean), std::begin(prv_mean2)))
{
 ...
}

或者没有c++11:

代码语言:javascript
复制
while(std::equal(C1Mean, C1Mean + sizeof C1Mean / sizeof *C1Mean, prv_mean1)
   && std::equal(C2Mean, C2Mean + sizeof C2Mean / sizeof *C2Mean, prv_mean2))
{
 ...
}
票数 4
EN

Stack Overflow用户

发布于 2015-01-04 19:21:08

在c++11中,您可以使用std::array,也可以使用==

代码语言:javascript
复制
std::array<int, 3> C1Mean;
std::array<int, 3> C2Mean;
std::array<int, 3> prv_mean1;
std::array<int, 3> prv_mean2;

while (C1Mean == prv_mean1 && C2Mean == prv_mean2)
{
    //code
}
票数 2
EN

Stack Overflow用户

发布于 2015-01-04 19:19:03

您不是使用比较运算符(==),而是使用赋值(=),因此在条件中更改CMean[i]的值,条件只有在prv_mean2之一等于零时才是假的。不,你不能比较整个数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27769330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档