c++ foreach 用法,无法修改循环变量的内容
string text = "text";
string pattern = "pattern";
int m = text.size(), n = pattern.size();
// 初始化一个备忘录,二维数组,大小为m*n
vector<vector<bool> > mem;
// 也可以直接构造函数初始化
// vector<vector<bool> > mem(m+1,vector<bool>(n+1,false));
// m 为text的长度 n为pattern的长度
mem.resize(m + 1);
// colomn resize后不会保存,循环执行完毕后mem[i]的size仍为0
for (vector<bool> colomn : mem)
{
colomn.resize(n + 1);
for (bool flag : colomn)
{
flag = false;
}
}
// 这个才能mem[i] resize才能正常
for (int i = 0; i < mem.size(); i++)
{
mem[i].resize(n + 1);
for (bool flag : mem[i])
{
flag = false;
}
}