如何理解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
相关推荐
2301_789015625 分钟前
Linux基础开发工具一:软件包管理器、vim编辑器
linux·服务器·c语言·汇编·c++·编辑器·vim
玖玥拾7 分钟前
C/C++ 基础笔记(十)
c语言·c++
Frank学习路上12 分钟前
【C++】面试:指针与引用
c++·面试
YIN_尹16 分钟前
【Linux系统编程】基础IO第一讲——系统文件IO
android·java·linux·c++
casual~21 分钟前
【学习记录(2)】
c++·学习
苏宸啊9 小时前
IPC管道
linux·c++
BestOrNothing_20159 小时前
ROS2 话题通信实战:消息对象、Publisher 发布器与 Subscriber 订阅器保姆级教程
c++·ros2·subscriber·publisher·话题通信
艾iYYY11 小时前
string 类的模拟实现
android·服务器·c语言·c++·算法
为何创造硅基生物11 小时前
C++ virtual void StartNetwork() = 0; // 纯虚:子类必须实现,否则不能 new。
c++
知无不研11 小时前
对套接字的深入理解
linux·服务器·网络·c++·socket·网络套接字