本文介绍了如何编写采用数组和指定数组大小的int的模板函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在一次大学练习中,我被要求编写一个模板函数"print();",该函数带有两个参数:1:一个泛型类型的数组,以及2:一个指定数组大小的int.然后,该函数应将阵列中的每个项目打印到控制台.我在使用函数参数时遇到了麻烦.我目前拥有的代码是:
For a university exercise, I have been asked to write a template function "print();", which takes two arguments, 1: an array of a generic type, and 2: an int specifying the size of the array. The function should then print out every item in the array to the console. I am having some trouble with the function arguments. The code I currently have is:
template <typename Type>
Type print (Type a, Type b)
{
Type items;
Type array;
a = array;
b = items;
for (int i = 0; i < items; i++) {
std::cout << std::endl << "The element of the index " << i << " is " << array << std::endl;
std::cout << std::endl;
}
和main()中的
print(Array[], 10);
显然,将Array用作参数不会返回任何值,所以我不确定还有什么要做的.有什么想法吗?
Obviously putting Array as an argument isn't returning a value, so I am not sure what else to do. Any ideas?
推荐答案
正确 的书写方式是
The correct way to write it is
#include <iostream>
template <typename T, size_t size> void print(const T (&array)[size])
{
for(size_t i = 0; i < size; ++i)
std::cout << array[i] << " ";
}
int main() {
int arr[] = { 1,2,3,4,99};
print(arr);
}
打印
1 2 3 4 99
这篇关于如何编写采用数组和指定数组大小的int的模板函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!