gpt4 book ai didi

c++ - 如何 typedef 具有未指定大小的 std::array?

转载 作者:可可西里 更新时间:2023-11-01 14:54:07 26 4
gpt4 key购买 nike

我想写一些变量,比如

std::array<double, array_num> a;

哪里array_numconst int表示数组的长度。但是它很长,我想为它创建一个别名:

typedef std::array<double, array_num> my_array;

是吗?如何使用 my_array喜欢my_array<3>

最佳答案

您需要的是 alias template :

template <size_t S>
using my_array = std::array<double, S>;

您不能直接制作typedef 模板,参见this post .

<支持>size_tstd::array 采用的第二个模板参数的类型,而不是 int

既然您了解了使用,您应该会使用它。它可以做 typedef 做的所有事情,再加上这个。此外,您使用漂亮的 = 符号作为分隔符从左到右阅读它,而不是 typedef,这有时可能会伤害您的眼睛。


让我再添加两个使用示例:

template <typename T>
using dozen = std::array<T, 12>;

如果你想为 std::array 创建一个别名,你需要模仿它的模板签名:

template <typename T, size_t S>
using my_array = std::array<T, S>;

- 因为这是不允许的:

using my_array = std::array;

关于c++ - 如何 typedef 具有未指定大小的 std::array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34463260/

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