#include <iostream>
#include <array>
using namespace std;
typedef int type;
typedef array <type,6> Liste;
bool appartient(type element, Liste liste);
int main()
{
Liste maliste = {4,5,-3,12,7,-33};
cout << appartient(13, maliste) << endl;
cout << appartient(12, maliste) << endl;
return 0;
}
bool appartient(type x, Liste liste)
{
for (auto element: liste) { //////this line!!!!!!!
if (x == element) return true;
}
return false;
}
我正在用c ++编写这个表练习。在这里,我正在撰写一篇文章&#34; appartient&#34;验证列表中元素的适应性。但是我在这个方面有一些错误:
1 /错误:在&#39;之前预期的初始化程序:&#39;令牌
2 /错误:在&#39;返回&#39;
之前预期的primary-expression3 /错误:预期&#39;;&#39;之前&#39;返回&#39;
4 /错误:在&#39;返回&#39;
之前预期的primary-expression5 /错误:预期&#39;)&#39;之前&#39;返回&#39;
为什么?
答案 0 :(得分:2)
显然你的编译器不支持range-based for-loops,至少不支持你正在使用的选项。
自GCC v4.6,Clang v3.0,MSVC v17.0,eccp v4.5,Intel C ++ v13.0,IBM XLC ++ v13.1.2,Sun / Oracle C ++以来,基于范围为supported 5.13,Cray v8.4,PGI 2015和HP aCC A.06.28。
检查您的编译器是否是最新的,并查看其手册,了解如何激活C ++ 11支持。
答案 1 :(得分:-1)
您是否尝试使用for循环或者您想使用for_each循环?
“for”的sintax要求您初始化将用作索引的变量,并且还指定此变量的增量。试试这个:
bool appartient(type x, Liste liste)
{
for(auto element = 0; element <= 6; element ++)
{
if (x == element) return true;
}
return false;
}
这只是一个非常原始的例子。我相信你可以使你的代码更漂亮。在这里检查for循环的sintax:for loops。
我希望这可能有所帮助。