面试题答案
一键面试#include <iostream>
template <size_t N>
void printArray() {
int arr[N];
for (size_t i = 0; i < N; ++i) {
arr[i] = i;
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
非类型参数相较于常规方法的优势
- 编译期确定:非类型参数在编译期就确定了数组的大小,这使得编译器可以在编译时进行更多的优化,例如数组边界检查优化等,相比在运行期确定大小的常规方法,提高了效率。
- 代码复用:通过函数模板结合非类型参数,可以复用同一份代码来处理不同大小的数组,而常规方法可能需要针对不同大小的数组编写不同的函数,增加了代码量。
- 类型安全:非类型参数的类型在编译期就已知,编译器可以更好地检查类型兼容性,相比传递变量作为数组大小(常规方法),减少了运行时错误的可能性。