Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何检查数组中的值_C++_Arrays - Fatal编程技术网

C++ 如何检查数组中的值

C++ 如何检查数组中的值,c++,arrays,C++,Arrays,我已经在一个数组中输入了4个数字 for (int i=0;i<4;i++) { cin >> choice[i]; } 这种类型的检查使我的代码太大 请用另一种方法帮助我bool count1=false; bool count1=false; bool count2=false; bool count3=false; bool count4=false; for (int i=0;i<4;i++) { cin >> choice[i]; if(

我已经在一个数组中输入了4个数字

for (int i=0;i<4;i++)
{
    cin >> choice[i];
}
这种类型的检查使我的代码太大

请用另一种方法帮助我

bool count1=false;
bool count1=false;
bool count2=false;
bool count3=false;
bool count4=false;

for (int i=0;i<4;i++)
{
cin >> choice[i];
if(choice[i]==1) count1==true;
else if(choice[i]==3) count2=true;
else if(choice[i]==4) count3=true;
else if(choice[i]==6)  count4=true;
}

if(count1 && count2 && count3 && count4) cout<<endl<<"yes, it is!";
布尔计数2=假; 布尔计数3=假; 布尔计数4=假; 对于(int i=0;i>choice[i]; 如果(选项[i]==1)count1==true; 如果(选项[i]==3)count2=true,则为else; 如果(选项[i]==4)count3=true,则为else; 如果(选项[i]==6)count4=true,则为else; }
如果(count1&&count2&&count3&&count4)不能使用
std::is_排列

int choice[4];

for (int i=0;i<4;i++)
{
    cin >> choice[i];
}

std::cout << std::is_permutation(std::begin(choice), std::end(choice), std::vector<int>{1, 3, 4, 6}.begin()) << std::endl;
int选择[4];
对于(int i=0;i>choice[i];
}

std::cout您可以使用以下内容:

std::vector<int> choice(4);
for (int i = 0; i < 4; ++i)
{
    std::cin >> choice[i];
}

std::sort(std::begin(choice), std::end(choice));
if (choice == std::vector<int>{1, 3, 4, 6}) { // 1, 3, 4, 6 should be sorted.
    // equal
}
std::向量选择(4);
对于(int i=0;i<4;++i)
{
标准:cin>>选择[i];
}
std::sort(std::begin(choice),std::end(choice));
如果(choice==std::vector{1,3,4,6}){//1,3,4,6应该被排序。
//相等的
}

.

“按任何顺序”只需再次循环,检查是否找到了所有四个正确的数字(计算有效数字)。对数组进行排序,然后与1、3、4、6进行比较。这个问题显示了研究工作(至少有一些),很清楚,并且(在某些条件下)有用。为什么会有反对票?@TobiMcNamobi因为StackOverflow:查看我的解决方案你可以使用布尔数组,但我想这是最简单的方法:)“你可以使用布尔数组…”一个简单的计数器变量就足够了。@πάνταῥεῖ 这不会起作用,因为如果所有插入的值都是1,计数器可以有值4..Bool比int占用的空间少。@danyalsandelo如果你在这里使用a,你可以用来测试。这很好,但对于一个新开发人员来说,我想最好向他展示最简单的方法,这就是为什么我甚至不使用数组的原因。这不是te生命周期的问题吗临时
std::vector
用作第三个参数?@Snps-Nope,与
中的
i
相同(int i=0;i
将持续
for
循环的持续时间,因为它在作用域中,所以匿名
std::vector
将持续
std::is_permutation
的持续时间,因为它将在作用域中。但是传递到
std::is_permutation
函数作用域的唯一东西是迭代器的副本。临时值是创建的在调用站点,对吗?@Snps
std::vector
是在
std::is_permutation
调用的作用域中创建的,在该作用域关闭之前无法释放,当
std::is_permutation
返回时就会释放,我想我必须在函数调用期间读取一些关于求值顺序的信息!)对不起,我是一个使用向量的绝对初学者。我运行了你的代码。似乎我的代码中有很多错误#include#include#include#include#include使用名称空间std;int main(){std::vector choice(4);for(inti=0;i<4;++i){std::cin>>choice[i];}std::sort(std::begin(choice),std::end(choice));if(choice==std::vector{1,3,4,6}){//1,3,4,6应该排序。//equal。。。错误C2039:'sort':不是'std'错误C3861的成员:'sort':未找到标识符错误C2143:语法错误:缺失'”,在“{”错误C2275:'std::vector:将此类型非法用作表达式1>时出现1>[1>\u Ty=int 1>]错误C2143:语法错误:缺失';'before'}“错误C2059:语法错误:”)“有效。您必须包含
并使用C++11进行编译(
-std=C++11
用于gcc/clang)。
std::vector<int> choice(4);
for (int i = 0; i < 4; ++i)
{
    std::cin >> choice[i];
}

std::sort(std::begin(choice), std::end(choice));
if (choice == std::vector<int>{1, 3, 4, 6}) { // 1, 3, 4, 6 should be sorted.
    // equal
}