Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.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
使用多维容器初始化 我正在使用QT库在C++中使用递归神经网络。它由一个包含拓扑的向量构成,其中元素的数量定义层的数量,每个元素指定每层中神经元的数量_C++_Qt_Vector_Multidimensional Array_Containers - Fatal编程技术网

使用多维容器初始化 我正在使用QT库在C++中使用递归神经网络。它由一个包含拓扑的向量构成,其中元素的数量定义层的数量,每个元素指定每层中神经元的数量

使用多维容器初始化 我正在使用QT库在C++中使用递归神经网络。它由一个包含拓扑的向量构成,其中元素的数量定义层的数量,每个元素指定每层中神经元的数量,c++,qt,vector,multidimensional-array,containers,C++,Qt,Vector,Multidimensional Array,Containers,目前的问题是,类需要在矩阵中存储一些权重,这些权重取决于元素的大小,它们的数量取决于向量的大小。所需的是一个快速、高效、基于索引的访问、三维(其中一个维度大小不同)容器。它不一定能够调整大小,但也不能预先分配给构造函数,因为大小和数量是由构造函数给定的 我试图将它们存储在嵌套向量中,但除了如何处理这些问题之外,我已经了解到嵌套向量的性能不好,例如 typedef QVector

目前的问题是,类需要在矩阵中存储一些权重,这些权重取决于元素的大小,它们的数量取决于向量的大小。所需的是一个快速、高效、基于索引的访问、三维(其中一个维度大小不同)容器。它不一定能够调整大小,但也不能预先分配给构造函数,因为大小和数量是由构造函数给定的

  • 我试图将它们存储在嵌套向量中,但除了如何处理这些问题之外,我已经了解到嵌套向量的性能不好,例如

    typedef QVector>权重

  • 我读了一些关于“动态分配多维数组”的内容,这些数组使用指针数组指向指向。。。等等这看起来不太优雅

  • Qt还提供了一些矩阵类,但由于我不能预先分配它们,所以忽略了这些

  • 采取一些额外的图书馆喜欢

  • 另一个解决方案可能是根据我的需要编写一些类或自定义容器,但我宁愿不这样做,除非这确实是最好的方法

  • 所以我要求你告诉我怎么走?是否有可能预先分配内存,或者它是否需要是动态的


    免责声明:我知道有很多类似的问题,但它们似乎缺乏比较的可能性,而且我也不总是确定基本情况是否相同。

    如果“预分配”是指“存储在堆栈上”,那么这通常是个坏主意(tm)无论如何,我不知道你所说的嵌套向量性能差到底是什么意思。你也可以肯定地把它展平,但我不确定它是否值得,真的。@friendzis,使用预分配,我的意思是定义容器的大小,例如int[10][2]。@Themindinner:是的,这是个坏主意,但是:我还没有看到你关于使用std::vector或QVector保留方法的基准。@LaszloPapp,dunno我刚读到嵌套向量的内存分配不是相邻的,但我喜欢你对QList的建议,事实上这可能是一个解决方案。