gpt4 book ai didi

具有多个类型名的 C++ 模板

转载 作者:行者123 更新时间:2023-11-30 00:37:29 28 4
gpt4 key购买 nike

我正在学习一种用于查找数组中元素数量的技术(这样我就可以开始编写排序算法,而不需要将数组的长度作为参数传递给数组)但是在教程中,此行作为模板声明出现:

template <typename T, size_t N>

老实说,我不知道您可以在一个模板声明中声明多个类型名称,但是“size_t N”还有什么作用?这也是模板声明中的变量声明吗?

最佳答案

size_t 是一种类似于 unsigned int 的类型。将它放在模板参数中仅意味着您传递的是 size_t,而不是类型。 N 大概代表一个数组的大小,是一个无符号的值。例如:

template<typename T, size_t N>
void zeroArray(T (&arr)[N]) { //arr is a reference to an array
std::fill(arr, arr + N, 0); //of N elements of type T
}

int main() {
int arr[3];
zeroArray<int, 3>(arr);
}

在这个例子中,我可以说:

zeroArray(arr);

因为两个模板参数都被推导了。

关于具有多个类型名的 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258937/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com