创建一个C ++模板函数,该函数将返回特定大小的std :: array

乔恩

我正在linspase使用以下输入结构创建一个标题为C ++ 17的函数linspace(double upper, double lower, int size)函数应sizelower之间创建均匀间隔的数字upper编程此功能很容易;但是,我希望它创建一个std::array<double, size>函数,该函数将根据函数调用确定数组大小并传递数据类型std::array<double, size>我知道模板是执行此操作的唯一方法,但是我不确定如何构建模板。在一般的伪代码中,我认为它看起来像这样。

template <typedef T, size_t size>
T linspace(double lower, double upper, int num)
{
    /* ... Function meat goes here to create arr of size 
           num of evenly space numbers between lower and upper
    */     
    return arr
}

但是,我知道此模板声明不正确,并且我不确定它的外观。明确地说,我希望它返回std:;array特定大小的,而不是std::vector

保罗

如果(正确)将数组大小作为模板参数传递,则不需要将其作为函数参数之一,因此:

template <size_t size>
auto linspace(double lower, double upper) -> std::array<int, size>
{
    std::array<int, size> arr{};
    //populate the array ...
    return arr;
}

由于您使用的是c ++ 14,因此可以完全摆脱返回值,并拥有一个类似以下的原型:

template <size_t size>
auto linspace(double lower, double upper)

然后,您可以像这样使用它:

auto arr = linspace<1>(0, 1);

for(auto a : arr)
{
    std::cout << a << std::endl;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建一个C数组包装器(更好的std :: array?)

创建一个模板函数,该函数根据模板参数类型的条件返回不同的元组类型

在 ruby 中为 Array 类创建了一个 pow 函数,但不返回数组

AS3:创建一个将Array和Vector都接受为参数的函数

如何在c ++中创建一个函数,该函数具有由参数确定的矩阵大小?

创建一个 get 函数,该函数在使用 getchar 函数按下时返回 char*

使用泛型创建一个函数,该函数将在Swift中返回另一个函数

定义一个以std :: array为参数的函数

如何在一个类中创建一个模板函数?(C ++)

如何在Swift中创建一个函数,该函数返回符合协议的Type?

在SQL Server中创建一个函数,该函数返回许多用于排序的值

如何使用 zipWithIndex 创建一个函数,该函数从 Scala 中的 List[Int] 返回一个 Int

我必须创建一个函数,该函数返回传入的数组的最后一个元素

根据array_rand函数的结果创建一个简码

JS:编写一个函数,该函数将返回出现多次的不区分大小写的字母字符和数字的计数

Django 创建一个“返回”函数

JavaScript:创建函数,该函数返回一个返回具有getter / setter功能的输出的函数

如何在C ++中创建一个函数原型,该函数原型接受两个整数作为参数并返回它们的差值?

编写一个Scala函数,该函数在调用时返回一个函数

如何编写一个函数,该函数采用 array<double, N> 的可变数并推导出 N?

如何包装一个C函数,该函数使用ctypes返回指向malloc数组的指针?

是否可以在Haskell中创建一个函数,该函数返回数据类型的构造函数列表?

如何创建一个返回另一个函数的函数,在C中隐式包含给定参数?

在 c 中创建一个 count_letters 函数?

创建一个Spark存在用户定义的函数,其功能类似于Scala Array#exists函数

实现一个函数,该函数将迭代 n 大小的形状容器并使用 JavaScript 求和它们的面积

在C中创建一个通用的“函数指针”联合是一个坏主意吗?

我正在尝试创建一个 javascript 函数,该函数使用通过 HTML 输入的值并返回一个函数

C - 你怎么能创建一个全局数组,谁的大小是一个函数的整数结果?