举例来说,我有一个 vector 。 vector 包含i个项目。假设我想遍历 vector 每个元素i中的所有位置j。我尝试使用嵌套的for循环执行以下代码中的过程。它尝试将每个元素更改为所有ks,如下所示:
vector<string> strvec;
strvec.push_back("Dog");
strvec.push_back("Cat");
for (int i = 0; i < strvec.length; i++)
{
for (int j = 0; j < strvec[i].length; j++)
{
strvec[i][j] = 'k';
}
}
每当以这种方式使用循环时,即使在嵌套循环中的代码之前(从嵌套循环的开头开始),上述代码也将获得错误消息。有没有办法遍历有效且有效的字符串 vector 的每个元素中的每个字符?
最佳答案
这是一种使用引用和基于范围的for
的方法。每当您必须从头开始迭代容器时,请首先尝试基于范围的for
。它不像手动控制那样通用,但是确实很难出错。
for (string & str: strvec)
{
for (char & ch: str)
{
ch = 'k';
}
}