首页 > 解决方案 > 如何将字符串的索引保存在向量中?

问题描述

假设我有一个函数 int pozvec(vector<string> vect) ,它以预先填充的字符串向量作为参数。

我想知道在哪个位置i有字符“p”,特别是“p”。所有字符串都是单字符,但向量被声明为包含字符串。我想保存在变量 x 中找到“p”的索引;

for(int i=0; i<vect.size(); i++)
    if(vect[i] == "p")
        x=i;

似乎不起作用。strcmp 也没有。问题更复杂,但不起作用的部分是这个。

预先感谢您的帮助!

标签: c++stringvectorstrcmp

解决方案


通过该函数,您可以存储您要查找的字符串的最后一次出现的索引。这是因为一旦找到第一次出现,您就不会退出循环。

要有条件地退出循环,请使用该break语句。

for(int i = 0; i< vect.size(); i++)
{
    if(vect[i] == "p")
    {
        x=i;
        break;
    }
}

现在它将在找到第一个事件后立即退出。

您还可以选择std::find.

int index = std::find(vect.begin(), vect.end(), "P") - vect.begin()

推荐阅读