Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.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++;检查数组中是否存在元素_C++_Arrays_Loops_For Loop - Fatal编程技术网

C++ C++;检查数组中是否存在元素

C++ C++;检查数组中是否存在元素,c++,arrays,loops,for-loop,C++,Arrays,Loops,For Loop,我发现了很多这样的话题,但对我来说太复杂了 如何检查数组中是否存在元素 首先,我声明一个数组并将值放入其中 for(int l=0;l<=21;l++){ skirt[l]=l; } 您可以简单地使用std::count算法 auto counter = std::count( skirt, skirt+skirt_size ); 循环: for(int k=0;k<=n;k++){ if(skaiciai[k]!=skirt[k]){

我发现了很多这样的话题,但对我来说太复杂了

如何检查数组中是否存在元素

首先,我声明一个数组并将值放入其中

for(int l=0;l<=21;l++){
        skirt[l]=l;
    }

您可以简单地使用std::count算法

auto counter = std::count( skirt, skirt+skirt_size );
循环:

for(int k=0;k<=n;k++){
    if(skaiciai[k]!=skirt[k]){
        counter++;
    }
}

最好的方法是使用标准算法,而不是手写循环:

if (std::find_first_of(
        skirt, skirt + skirt_size,
        skaiciai, skaiciai + skaiciai_size)
    != skirt + skirt_size)
{
    //skirt contained an element from skaiciai
}

这不会编译,因为您省略了任何要比较的值或谓词;
std::count()
的重载只需要两个参数,因为它需要第三个参数来告诉它要计算什么。问题在于如何使用嵌套进行计数。
for (int k_skirt = 0; k_skirt <= n; k_skirt++)
{
    for (int k_skaiciai = 0; k_skaiciai <= n; k_skaiciai++)
    {
        if(skaiciai[k_skaicia] == skirt[k_skirt]){
            counter++;
        }
    }
}
if (std::find_first_of(
        skirt, skirt + skirt_size,
        skaiciai, skaiciai + skaiciai_size)
    != skirt + skirt_size)
{
    //skirt contained an element from skaiciai
}