所以我正在尝试编写一个简单的代码,它将从用户那里接收 2 个字符串。然后它使用 length() 获取字符串的长度,并根据长度创建一个整数矩阵(2d 向量)。然后,我需要将最后一行和最后一列的值设置为 2 的幂值。如果输入的字符串是“快乐”和“悲伤”,则生成的矩阵应该是:
0 0 0 0 0 6
0 0 0 0 0 4
0 0 0 0 0 2
10 8 6 4 2 0
我正在生成这样的矩阵:
vector<vector<int>> opt;
unsigned int x, y;
x = (sequenceOne.length()) + 1;
y = (sequenceTwo.length()) + 1;
unsigned int p,q;
opt.resize(y, vector<int>(x, 0)); // resizes the matrix
当我尝试使用以下方法更改矩阵中的值时:
opt[2][2] = 5;
它工作正常,但是当我像这样访问最后一行最后一列时:
opt[x][y]
它告诉我“表达式:向量下标超出范围”我认为这与获取要用作值的字符串的长度有关,但我无法终生弄清楚为什么这会导致问题。我尝试让下标成为不同的变量、不同的顺序以及诸如 opt[x-1][y-1] 之类的东西,但错误仍然存在。
我不确定这是否重要,但我使用的是 MS VS2012。