我有这样一个矩阵值
3 1 30
5 8 1
1 5 2
0 23 7
目前我只知道用这种方式给多维 vector 赋值。
vector<vector <int> > vec;
vec[0][0]=3;
vec[0][1]=1;
vec[0][2]=30;
.
.
vec[3][2]=7;
对于较小的矩阵值,这是可以的,但对于较大的值,这会变得更难。有没有其他方法可以在多维 vector 中分配变量。
编辑
我正在使用代码块,但遇到了这个不寻常的错误
#include<iostream>
#include<vector>
int main()
{
std::vector<std::vector<int> > vec = {{3,1,30},{5,8,1},{1,5,2},{0,23,7}};
return 0;
}
错误
error: could not convert ‘{{3, 1, 30}, {5, 8, 1}, {1, 5, 2}, {0, 23, 7}}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::vector<int> >’
最佳答案
使用嵌套 for 循环:例如:
for (int i = 0; i < MAX_VECTOR_SIZE; i++)
{
for(int j = 0; j < MAX_SUB_VECTOR_SIZE; j++)
{
vec[i][j] = value;
}
}
不要忘记在必要时替换给定的值。
关于c++ - 使用 C++ 在多维 vector 中分配变量的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38807450/