Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何定义未指定大小的std::数组?_C++_Templates_C++11_Alias_Typedef - Fatal编程技术网

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;