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()); }