如何保存在一个矢量字符串的索引?



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

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

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

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

提前感谢您的帮助!

我不知道你到底想做什么,但这对我来说很好:

for (size_t i {}; i < vec.size(); ++i) {
if (vec.at(i) == "p") {
x = i;
break; // I don't know wether you want to break here or not
} else {
continue;
}
}

或者如果你所有的字符串只包含一个字符,这也应该工作:

for (size_t i {}; i < vec.size(); ++i) {
if (vec.at(i).at(0) == 'p') {
x = i;
break; // I don't know wether you want to break here or not
} else {
continue;
}
}

通过该函数,您存储了您要查找的字符串的最后一次出现的索引。这是因为一旦发现第一个出现,您就没有退出循环。

要有条件地退出循环,使用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()

最新更新