C++:调整二维 vector 的大小

标签 c++ windows matrix

我遇到了错误

"The expression needs to be a constant" 

当我尝试这样做时:

float mat1[m_Floats.size()][iNumClass];

我可以欺骗编译器 (VS2010) 编译它吗?

最佳答案

没有。只有 C99 指定动态数组分配(即大小仅在编译时已知)。也许有标准的 MSVC 扩展,但您应该使用 new 以规范的方式创建指针数组和每个浮点子数组,例如:

float **mat1 = new float*[m_Floats.size()];
for (int i = 0; i < m_Floats.size(); ++i) {
    mat1[i] = new float[iNumClass];
}

关于C++:调整二维 vector 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19449807/

相关文章:

windows - Windows 上的 XTerm

c# - 如何更改网格中所有文本框的字体大小,windows app uwp

r - 如何在R中堆叠多个矩阵

c++ - QT ListWidget itemclicked into a String

c++ - 代码块编译后需要很长时间才能执行

c++ - 在 bmp 文件中保存屏幕截图的设备上下文

c - MIPS 中的错误寻址 - 矩阵乘法

c++ - 避免双重包含 : Preprocessor directive vs. makefile

c++ - 为什么我尝试将按钮连接到 lambda 会失败?

python - 在 python/numpy 中随机放置给定数字的矩阵