Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.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++ 如何传递数组<;国际,6>;发挥作用_C++_Arrays_Function - Fatal编程技术网

C++ 如何传递数组<;国际,6>;发挥作用

C++ 如何传递数组<;国际,6>;发挥作用,c++,arrays,function,C++,Arrays,Function,提前谢谢你 因此,我试图将数组传递给函数,但遇到了问题 我的数组声明如下: array<int, 6> yourNumbers {0,1,2,3,4,5}; 数组{0,1,2,3,4,5}; 我试图将其传递给一个函数,以检查是否有重复的数字。我这样做是因为我想要一个可以重用的函数来检查不同的数组。有什么意见吗 这是我目前掌握的代码。但是您可以在checkPrevNum()函数中看到,它仅限于遍历预先确定的数组randomNums。我想要它,这样我就可以将我想要的任何数组传递给要检

提前谢谢你

因此,我试图将数组传递给函数,但遇到了问题

我的数组声明如下:

array<int, 6> yourNumbers {0,1,2,3,4,5};
数组{0,1,2,3,4,5};
我试图将其传递给一个函数,以检查是否有重复的数字。我这样做是因为我想要一个可以重用的函数来检查不同的数组。有什么意见吗

这是我目前掌握的代码。但是您可以在checkPrevNum()函数中看到,它仅限于遍历预先确定的数组randomNums。我想要它,这样我就可以将我想要的任何数组传递给要检查的函数。我对C/C++比较陌生

int getNum(){
int numSelection = 0;

do {
numSelection = (rand() % 69) + 1;
} while (checkPrevNum(numSelection) == true);

return numSelection;
}

bool checkPrevNum(int prevNum){
for (int i = 0; i < 5; i++){
    if (prevNum == randomNums[i]){
        return true;
    }
}
return false;
}
intgetnum(){
int numSelection=0;
做{
numSelection=(rand()%69)+1;
}while(checkPrevNum(numSelection)==true);
返回numSelection;
}
bool checkPrevNum(int prevNum){
对于(int i=0;i<5;i++){
if(prevNum==randomNums[i]){
返回true;
}
}
返回false;
}
数组
是一种与say
数组
不同的静态类型,因此需要一个模板函数来直接处理:

template <typename T, size_t N>
void check_duplicates(const std::array<T, N>& a)
    ...
如果要支持不同的类型:

template <typename T>
void check_duplicates_3(const T*, size_t n)
    ...

// caller:
check_duplicates_3(&yourNumbers[0], yourNumbers.size());

如何将其传递给不工作的函数?你会犯什么错误?
template <typename T>
void check_duplicates_3(const T*, size_t n)
    ...

// caller:
check_duplicates_3(&yourNumbers[0], yourNumbers.size());
template <typename T, size_t N>
void check_duplicates(const std::array<T, N>& a)
    { return check_duplicates_3(&a[0], a.size()); }