在C 中的字符串向量的字符串元素中循环遍历所有字符

Looping through all characters in a string element of a string vector in C++

本文关键字:字符串 字符 遍历 向量 元素 循环      更新时间:2023-10-16

说,例如,我有一个向量。向量包含i项目。说我想在向量的每个元素I中循环遍历所有位置J。我尝试使用嵌套循环以在以下代码中执行该过程。它试图将每个元素更改为所有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';
    }
}

每当以这种方式使用循环时,上述代码甚至在嵌套循环中的代码之前(从嵌套环的开头开始)。有没有办法循环浏览有效且有效的字符串向量元素中的每个字符?

这是一种使用参考和基于范围的for的方法。每当您必须从头开始迭代容器时,请先尝试基于范围的for。它不像手动控制那样通用,但确实很难犯错。

for (string & str: strvec)
{
    for (char & ch: str)
    {
        ch = 'k';
    }
}

std::vector具有size功能,您可以用于迭代:

for (std::size_t i = 0; i < strvec.size(); i++)
{
    for (std::size_t j = 0; j < strvec[i].size(); j++)
    {
        strvec[i][j] = 'k';
    }
}