C++ 输出数组函数
Posted
技术标签:
【中文标题】C++ 输出数组函数【英文标题】:C++ Output array function 【发布时间】:2021-12-12 19:05:19 【问题描述】:我目前正在关注 Deitel 的 C++ How to Program 第 9 版教科书,但遇到了一个特定问题。
问题是把本章前面写的代码用向量类模板改写成数组类模板。
在代码中有以下函数用于向向量中输入数据并显示向量。
// output vector contents
void outputVector( const vector< int > &array )
for ( int item : array )
cout << item << " ";
cout << endl;
// end function outputVector
// input vector contents
void inputVector( vector< int > &array )
for ( int &item : array )
cin >> item;
// end function inputVector
我的困惑是我不知道如何创建这样的函数,这些函数将数组模板作为参数,例如长度为 7 和 10,就像代码的向量模板版本中的情况一样。
这是可能的还是必须为特定长度的数组模板定义一个函数?
此外,如果是这种情况,那么在向量上使用数组的真正价值是什么?
谢谢
【问题讨论】:
见:***.com/a/62201889/4342498 本书此时应该已经介绍了函数模板。 【参考方案1】:你可以试试下面的
template<std::size_t S>
void inputVector(std::array<int, S>& arr)
//do your thing
【讨论】:
【参考方案2】:如果我理解你的问题,你可以使用模板来允许不同长度的数组,所以修改你的矢量版本看起来像
template <std::size_t N>
void outputArray(const std::array<int, N>& data)
for (int item : data)
std::cout << item << " ";
std::cout << std::endl;
template <std::size_t N>
void inputArray(std::array<int, N>& data)
for (int &item : data)
std::cin >> item;
然后你可以用任何大小的数组调用它
int main()
std::array<int, 3> a = 1,2,3;
std::array<int, 5> b = 1,2,3,4,5;
outputArray(a);
outputArray(b);
【讨论】:
以上是关于C++ 输出数组函数的主要内容,如果未能解决你的问题,请参考以下文章
C++ 输入一组数组 找出这个数组中第2大的数 这个函数 怎么写
在 C++ 中用于在函数中使用数组,其中使用 ifstream 将数据从 .txt 文件输入到数组中