您可以使用大小不同的boost :: multi_arrays调用函数吗?

联合码头

我正在尝试构建将多维数组写入文件系统的功能。为了使它紧凑,我只想为不同大小的multi_arrays创建一个函数。

typedef boost::multi_array<int, 2> Array2D;
typedef boost::multi_array<int, 3> Array3D;
typedef boost::multi_array<int, 4> Array4D;
typedef boost::multi_array<int, 5> Array5D;

void writeArrayToFile(boost::multi_array_base_type array){
    // do things with array
}

void main(){
    Array2D myArray2D; // + fill array
    writeArrayToFile(myArray2D);

    Array3D myArray3D; // + fill array
    writeArrayToFile(myArray3D);
    //... and so on
}

有这样的事情boost::multi_array_base_type还是有其他方法可以做到这一点?

纪尧姆·拉西科特(Guillaume Racicot)

模板是您在c ++中的朋友。您可以使用模板解决问题。学会爱他们:

template<std::size_t N>
void writeArrayToFile(const boost::multi_array<int, N>& array) {
    // do things with array
}

然后,您可以像这样调用函数,并让编译器推断大小:

writeArrayToFile(myArray2D);
writeArrayToFile(myArray3D);

如果愿意,您甚至可以推断出元素类型:

template<typename T, std::size_t N>
void writeArrayToFile(const boost::multi_array<T, N>& array) {
    // do things with array
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您可以使用Pandas样式更改标题字体大小吗?

来自分类Dev

您可以使用this.queryText.replace替换两个不同的文本吗?

来自分类Dev

您可以使用完全不同的APK更新Android应用吗?

来自分类Dev

您可以使用this.queryText.replace替换两个不同的文本吗?

来自分类Dev

您可以使用完全不同的APK更新Android应用吗?

来自分类Dev

Openshift Django-您可以使用与wsgi / static不同的目录吗?

来自分类Dev

您可以使用变量的值作为函数名称来调用函数吗?

来自分类Dev

您可以使用私有API来挂接iOS中的系统函数调用吗?

来自分类Dev

您可以使用perf描述一次函数调用吗?

来自分类Dev

您可以使用JNI在从Java调用的c ++函数中创建新的JVM吗?

来自分类Dev

您可以使用取消引用来调用指向汇编中函数的指针吗?

来自分类Dev

您可以使对象“可调用”吗?

来自分类Dev

您可以使一个函数接受两种不同的数据类型吗?

来自分类Dev

我可以使用不同大小的磁盘在FreeNAS中创建ZFS镜像吗?

来自分类Dev

您可以使用VBA返回磁盘的Volume GUID吗?

来自分类Dev

您可以使用参数执行类似RoutePrefix的操作吗?

来自分类Dev

您可以使用多个Google Site Verification标签吗?

来自分类Dev

您可以使用JQueryMobile创建嵌套的弹出窗口吗

来自分类Dev

您可以使用PySphere来宾操作系统吗?

来自分类Dev

您可以使用#define更改#include吗?

来自分类Dev

您可以使用Davmail访问Exchange存档吗?

来自分类Dev

您可以使用icmp定位特定端口吗?

来自分类Dev

Java:您可以使用变量进行转换吗?

来自分类Dev

您可以使用IAP登录到Firebase吗?

来自分类Dev

您可以使用AMP检测iPhone与Android吗?

来自分类Dev

您可以使用constexpr变量的地址吗?

来自分类Dev

您可以使用HTML读取/写入Excel文档吗?

来自分类Dev

您可以使用单个HTML文件制作表单吗?

来自分类Dev

您可以使用Crossfilter在组内进行过滤吗

Related 相关文章

  1. 1

    您可以使用Pandas样式更改标题字体大小吗?

  2. 2

    您可以使用this.queryText.replace替换两个不同的文本吗?

  3. 3

    您可以使用完全不同的APK更新Android应用吗?

  4. 4

    您可以使用this.queryText.replace替换两个不同的文本吗?

  5. 5

    您可以使用完全不同的APK更新Android应用吗?

  6. 6

    Openshift Django-您可以使用与wsgi / static不同的目录吗?

  7. 7

    您可以使用变量的值作为函数名称来调用函数吗?

  8. 8

    您可以使用私有API来挂接iOS中的系统函数调用吗?

  9. 9

    您可以使用perf描述一次函数调用吗?

  10. 10

    您可以使用JNI在从Java调用的c ++函数中创建新的JVM吗?

  11. 11

    您可以使用取消引用来调用指向汇编中函数的指针吗?

  12. 12

    您可以使对象“可调用”吗?

  13. 13

    您可以使一个函数接受两种不同的数据类型吗?

  14. 14

    我可以使用不同大小的磁盘在FreeNAS中创建ZFS镜像吗?

  15. 15

    您可以使用VBA返回磁盘的Volume GUID吗?

  16. 16

    您可以使用参数执行类似RoutePrefix的操作吗?

  17. 17

    您可以使用多个Google Site Verification标签吗?

  18. 18

    您可以使用JQueryMobile创建嵌套的弹出窗口吗

  19. 19

    您可以使用PySphere来宾操作系统吗?

  20. 20

    您可以使用#define更改#include吗?

  21. 21

    您可以使用Davmail访问Exchange存档吗?

  22. 22

    您可以使用icmp定位特定端口吗?

  23. 23

    Java:您可以使用变量进行转换吗?

  24. 24

    您可以使用IAP登录到Firebase吗?

  25. 25

    您可以使用AMP检测iPhone与Android吗?

  26. 26

    您可以使用constexpr变量的地址吗?

  27. 27

    您可以使用HTML读取/写入Excel文档吗?

  28. 28

    您可以使用单个HTML文件制作表单吗?

  29. 29

    您可以使用Crossfilter在组内进行过滤吗

热门标签

归档