平时经常输出数组以测试数据,现在写一个通用的函数,函数原型为:
/**
* print array
* @data : pointer that point to an array
* @param n : number of data
* @nPerline : number of data per line, 10 by default.
*/
template<typename T>
void printArray(T *data, int n, int nPerLine = 10);
实现如下:
template<typename T>
void printArray(T *data, int n, int nPerLine) {
if (nPerLine < 0) {
nPerLine = 10;
}
int counter = 0;
for (int i = 0; i < n; i++) {
std::cout << data[i] << ' ';
if ((++counter % nPerLine) == 0) {
std::cout << std::endl;
}
}
}
测试IDE:Microsoft Visual Studio 2010
后记(2012/10/19):现在回顾本篇文章,代码显得稚嫩很多。关于数组的打印,在另一篇博文“The C++ Programming Language, special edition》第6章6.6节中的一道有趣习题ch6.6-15”的代码中有用到另一种打印数组的方法,利用对数组的引用,可以不用传数组大小参数,但传递的参数必须是静态数组的名称,而不能是指针。