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;
}
}
本文深入探讨了C++中foreach循环的使用方法及其限制,特别是在遍历过程中修改元素的注意事项。通过具体示例,展示了如何正确初始化和使用二维vector,并避免了循环中常见的错误,如无法修改循环变量内容的问题。


被折叠的 条评论
为什么被折叠?



