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

C++ 如何判断向量是否有一定数量的元素C++;,c++,vector,C++,Vector,如果这是重复的,我不会感到惊讶,但我已经搜索了所有地方,只找到了关于在向量中查找特定元素的帖子 我有一个代码,它将一个字符串拆分为字符串中所有单个单词的向量(按空格拆分),然后将该向量的每个索引分配给单个字符串(因此只需获取一个句子并将其拆分为单词),但我发现,如果我尝试为向量中不存在的某个元素编制索引,我会得到各种各样的错误。例如,如果我的向量有5个元素,然后我说: string x = names[6]; 然后,由于没有名称[6],代码中断。我想添加一个“if”语句,本质上说“if nam

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

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

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

我试过:

    if (std::find(names.begin(), names.end(), names[4]) != names.end()) 
    {
        string x = names[4];
    }
    else 
    {
    }
但如果名称[4]不存在,我也会出现同样的错误

如果有人能让我知道怎么做,或者让我参考另一篇解释这一点的文章,那就太好了


-感谢当
索引
时,
std::vector
中存在索引。您可以进行以下测试:

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

如果
索引
,则存在
std::vector
中的索引。您可以进行以下测试:

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()

检查,通过迭代将向量的所有条目放入字符串中如何

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()

检查,请注意,代码仅“中断”,因为您不处理此实例中
std::vector
引发的异常。捕获异常->无中断。请注意,代码只会“中断”,因为您不处理在该实例中抛出的异常
std::vector
。捕捉异常->无破损。