如何理解template<size_t N>?

template<size_t N> 是C++中的模板参数,用于定一个非类型参数的值。它可以在编译时确定,并且可以在编译时进行计算和使用。

例如,我们可以定义一个模板函数,接受一个大小为N的数组作为参数:

cpp 复制代码
template<size_t N>
void printArray(int (&arr)[N]) 
{
    for (size_t i = 0; i < N; i++) 
    {
        cout << arr[i] << " ";
    }
    cout << endl;
}

在调用这个函数时,我们可以指定数组的大小:

cpp 复制代码
int arr1[5] = {1, 2, 3, 4, 5};
printArray<5>(arr1); // 输出:1 2 3 4 5

int arr2[10] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
printArray<10>(arr2); // 输出:10 20 30 40 50 60 70 80 90 100
相关推荐
楼田莉子17 分钟前
CMake学习:CMake语法
c++·后端·学习·软件构建
无限进步_22 分钟前
C++ 继承机制完全解析:从基础原理到菱形继承问题
java·开发语言·数据结构·c++·vscode·后端·算法
盐焗鹌鹑蛋27 分钟前
【C++】vector类
c++
jf加菲猫42 分钟前
第15章 文件和目录
开发语言·c++·qt·ui
思麟呀1 小时前
Select多路转接
linux·网络·c++·网络协议·http
aq55356001 小时前
开源吐槽大会:让技术痛点变笑点
c++·mfc
t***5441 小时前
如何在 Dev-C++ 中切换编译器至 Clang
开发语言·c++
王老师青少年编程1 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【区间贪心】:线段覆盖
c++·算法·贪心·csp·信奥赛·区间贪心·线段覆盖
CoderCodingNo1 小时前
【信奥业余科普】C++ 的奇妙之旅 | 14:程序的分叉路口——逻辑判断与 if-else 语句
开发语言·c++
The Chosen One9851 小时前
a进制转b进制的转换总结
开发语言·c++