C++ 如何定义未指定大小的std::数组?
我想写一些变量,比如C++ 如何定义未指定大小的std::数组?,c++,templates,c++11,alias,typedef,C++,Templates,C++11,Alias,Typedef,我想写一些变量,比如 std::array<double, array_num> a; 是这样吗?如何使用我的数组像我的数组?您需要的是: 如果您想为std::array创建别名,那么您需要模拟它的模板签名: template <typename T, size_t S> using my_array = std::array<T, S>; 多谢各位使用确实更好,size\u t也更好。size\u t是第二个std::array模板参数的类型,它用于所有
std::array<double, array_num> a;
是这样吗?如何使用我的数组
像我的数组
?您需要的是:
如果您想为std::array
创建别名,那么您需要模拟它的模板签名:
template <typename T, size_t S>
using my_array = std::array<T, S>;
多谢各位
使用
确实更好,size\u t
也更好。size\u t
是第二个std::array
模板参数的类型,它用于所有标准容器的大小。在x86-64上,int
有4B,而size\u t
有8B。你根本不想在那里乱搞。它甚至不是无符号的
@yikouniao添加了一些额外的信息,而且,模板参数不能是变量,正如您在问题中所说的那样。一个std::array
有一个常量维度表达式。它不能是变量。如果希望它是一个变量,则需要std::vector
或者将来的std::dynarray
(在将来的一些C++标准中)
template <size_t S>
using my_array = std::array<double, S>;
template <typename T>
using dozen = std::array<T, 12>;
template <typename T, size_t S>
using my_array = std::array<T, S>;
using my_array = std::array;