使用多维容器初始化 我正在使用QT库在C++中使用递归神经网络。它由一个包含拓扑的向量构成,其中元素的数量定义层的数量,每个元素指定每层中神经元的数量
目前的问题是,类需要在矩阵中存储一些权重,这些权重取决于元素的大小,它们的数量取决于向量的大小。所需的是一个快速、高效、基于索引的访问、三维(其中一个维度大小不同)容器。它不一定能够调整大小,但也不能预先分配给构造函数,因为大小和数量是由构造函数给定的使用多维容器初始化 我正在使用QT库在C++中使用递归神经网络。它由一个包含拓扑的向量构成,其中元素的数量定义层的数量,每个元素指定每层中神经元的数量,c++,qt,vector,multidimensional-array,containers,C++,Qt,Vector,Multidimensional Array,Containers,目前的问题是,类需要在矩阵中存储一些权重,这些权重取决于元素的大小,它们的数量取决于向量的大小。所需的是一个快速、高效、基于索引的访问、三维(其中一个维度大小不同)容器。它不一定能够调整大小,但也不能预先分配给构造函数,因为大小和数量是由构造函数给定的 我试图将它们存储在嵌套向量中,但除了如何处理这些问题之外,我已经了解到嵌套向量的性能不好,例如 typedef QVector
免责声明:我知道有很多类似的问题,但它们似乎缺乏比较的可能性,而且我也不总是确定基本情况是否相同。如果“预分配”是指“存储在堆栈上”,那么这通常是个坏主意(tm)无论如何,我不知道你所说的嵌套向量性能差到底是什么意思。你也可以肯定地把它展平,但我不确定它是否值得,真的。@friendzis,使用预分配,我的意思是定义容器的大小,例如int[10][2]。@Themindinner:是的,这是个坏主意,但是:我还没有看到你关于使用std::vector或QVector保留方法的基准。@LaszloPapp,dunno我刚读到嵌套向量的内存分配不是相邻的,但我喜欢你对QList的建议,事实上这可能是一个解决方案。