如何判断一个向量是否有一定数量的元素C++
How to tell if a vector has a certain number of elements C++
如果这是重复的,我不会感到惊讶,但我已经搜索了所有地方,只找到了关于在向量中查找特定元素的帖子。
我有一个代码,它将字符串拆分为字符串中所有单个单词的向量(用空格拆分),然后将该向量的每个索引分配给单个字符串(所以只需要取一个句子并将其拆分为单词),但我发现,如果我试图为向量中不存在的某个元素编制索引,我会遇到各种错误。例如,如果我的向量有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()
进行检查。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 如何将元素添加到数组的线程安全函数?
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- 我想访问std::unique_ptr中的一个特定元素
- 如何通过 getter 函数删除矢量的元素?
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- 从控制台中删除最后打印的元素
- 擦除while循环中迭代的元素