如何判断一个向量是否有一定数量的元素C++

How to tell if a vector has a certain number of elements C++

本文关键字:C++ 元素 一个 何判断 判断 向量 是否      更新时间:2023-10-16

如果这是重复的,我不会感到惊讶,但我已经搜索了所有地方,只找到了关于在向量中查找特定元素的帖子。

我有一个代码,它将字符串拆分为字符串中所有单个单词的向量(用空格拆分),然后将该向量的每个索引分配给单个字符串(所以只需要取一个句子并将其拆分为单词),但我发现,如果我试图为向量中不存在的某个元素编制索引,我会遇到各种错误。例如,如果我的向量有5个元素,然后我说:

string x = names[6];

然后,由于没有名称[6],代码中断。我想添加一个"if"语句,它本质上说"如果名称[6]存在,字符串x=名称[6]",但我不知道如何检查名称[6](或向量的任何其他索引)是否存在。

我试过:

    if (std::find(names.begin(), names.end(), names[4]) != names.end()) 
    {
        string x = names[4];
    }
    else 
    {
    }

但如果名称[4]不存在,我最终会出现同样的错误。

如果有人能让我知道如何做到这一点,或者让我参考另一篇解释这一点的帖子,那就太好了,

-感谢

std::vector中的索引存在于index < vector.size()时。你可以测试一下:

if (names.size() > 4)
    string x = names[4];

通过迭代将向量的所有条目放入字符串中怎么样?

for (const auto& e : names) {
    // You can use e here 
}

如果你真的想检查索引是否存在,你可以在上查看

try {
   std::string x = names.at(position);
}
catch (const std::out_of_range& oor) {
   //Nothing at this spot!
}

您也可以使用vector.size()进行检查。