如何理解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
相关推荐
牛油果子哥q6 小时前
C++内存池与对象池精讲:内存碎片、自定义分配器、对象池实现、STL allocator原理、工程落地与性能对比
java·开发语言·c++
万法若空6 小时前
C/C++ 类型别名定义方式对比
java·c语言·c++
小小晓.8 小时前
C++ 值类别与完美转发深度剖析:从左值右值到 std::forward 源码解密
开发语言·c++·算法
hetao17338379 小时前
2026-08-27~29 hetao1733837 的刷题记录
c++·算法
chen<>9 小时前
C++ 六种 memory_order:从原子性到线程间可见性.md
java·linux·开发语言·c++
会周易的程序员9 小时前
企业私有 AI 算力服务器架构设计:异构四节点 + QUIC 微服务
运维·服务器·c++·人工智能·微服务·架构
m0_734571769 小时前
深入理解C++ 类型转换<三>const_cast
开发语言·c++
库玛西9 小时前
Linux网络编程:HTTP/HTTPS协议核心技术全解析
linux·运维·服务器·网络·c++·http·https
布莱克60511 小时前
链表详解:定义、作用、应用场景及与数组的区别(C/C++ 实战)
c语言·开发语言·c++·链表
执子星海12 小时前
Registry Win32 API详解
c++·windows·microsoft·visualstudio·微软