https://blog.csdn.net/bopzhou/article/details/6063163上看到了如何用模板获取一个数组的长度
#include <iostream>
template <typename T>
int length(const T& arr) {
return sizeof(arr) / sizeof(arr[0]);
}
int main() {
int array[6] = { 1,2,3,4,5,6 };
std::cout << length(array) << '\n';
}
这个的大概思路就是,把数组作为一个模板参数传入函数,数组的类型会被自动识别,因此不会直接作为指针传入函数。
使用这个可以用来初始化一个自定义的容器。