当前位置: 首页 > 知识库问答 >
问题:

在向量STL C++中查找项目

宋高谊
2023-03-14

假设,我有一个值x=10,我有一个名为vec的向量。现在,请看这段片断,如果你能帮助我澄清我的疑问,那将是非常好的。

if(find(vec.begin(),vec.end(),x)==vec.end())
{ statement; }

现在,我的问题是在向量上求x。如果我能够在这个向量中找到x,那么“语句”将被执行。为什么我要在那里写“==vec.end()”?这个特定的东西的作用是什么?

共有3个答案

东方宜
2023-03-14

代码试图在迭代器vec.begin()vec.end()之间查找x。如果找到的条目也是最后一个(vec.end()),则执行语句

贺奕
2023-03-14

find返回显示元素的迭代器,它在那里找到了x。如果找不到x,它将返回vec.end(),因此逻辑正好相反:当找不到x时,将执行语句。

田德馨
2023-03-14

find返回一个迭代器,该迭代器引用找到的元素,如果未找到元素,则返回end()。所以您的代码是错误的,它应该是

if(find(vec.begin(),vec.end(),x)!=vec.end())
{ statement; }

你的问题是为什么会这样。让find向找到的元素返回一个迭代器(而不仅仅是一个布尔值)是很有用的。那么,假设find必须返回一个迭代器,当它没有找到任何东西时,它返回end()是符合逻辑的,因为end()是一个不引用向量中任何元素的迭代器值。

 类似资料:
  • 我试图在PySpark中使用https://nlp.stanford.edu/projects/GloVe/预先训练的手套模型实现一个简单的Doc2Vec算法。 我有两个RDD:

  • 在此函数中,我在向量缓存中搜索对.first。向量为: 我用于查找函数的自定义函数是: 我将find函数调用为: 在编译时,我遇到了很多错误。前几行是: 在包含自 /usr/include/c /4.6/算法:63:0,从 my_class.hpp:5,从主.cpp:5: /usr/include/c /4.6/位/stl_algo.h 中包含的文件中:在函数“随机访问迭代器 std::_find

  • 问题内容: 我有一张很大的桌子,上面有关于用户的以下数据。 我想在ssn等于但名称不等于的表中找到所有可能的重复项 我的尝试是: 问题答案: 在SSN上进行分组应该做到这一点 ~~~~ ..或如果每个ssn有很多行,而只想查找重复的名称) 编辑,糟糕,被误解

  • 我想知道如何实现以下操作:我有两个arraylists,其中的值相互关联。也就是说,同一索引上的arraylists的元素彼此相关。例如:ArrayList1(String ArrayList)=[id1,id2,id3,id2,id2,id1]。ArrayList2(整数ArrayList)=[2,3,2,5,6,3]。 我想创建2个新的arraylists与重复的值不再存在。在上面的例子中,新

  • 我有一个JFace(带有底层SWT)。 树包含多行和多个级别。 我希望能够找到一个特定的树节点(通过文本标签比较),扩展到它的水平,并选择该项。 主要问题是我无法遍历,因为树以LAZY模式加载所有内容。 也许有一个选项可以通过搜索模型直接访问树项?

  • 我有一个人名向量列表,每个向量只有名字和姓氏,我有另一个向量列表,每个向量有名字的第一个,中间的,姓氏。我需要匹配这两个列表,以找到包含在这两个列表中的人。因为名称不是按顺序排列的(有些向量以名字作为第一个值,而有些向量以姓氏作为第一个值),所以我想通过查找第二个列表中的哪个向量(全名)包含第一个列表中某个向量的所有值(只有名字和姓氏)来匹配这两个向量。 到目前为止我所做的: 首先,我尝试创建一个

  • 问题内容: 我有两个DataFrames。。。 是一个表,我需要从使用索引的值中提取值,这些索引是从df2中的多个列检索到的。 我看到有一个函数可以在给定索引和列值的情况下完美运行,但是当尝试向量化此函数以创建新列时,我失败了… 现在,我需要做的是在-上建立一个新的新列-当基于索引建立索引时,有效地向量化上述函数中指定的,来自的列对。 导致 。。。 问题答案: 有一个恰当地命名的函数可以做到这一点

  • 问题内容: 您如何找到从向量a到b的正负角theta? 是的,我知道theta = arccos((ab)/(|| a || b |))。 但是,它不包含符号(即不能区分顺时针或逆时针旋转)。 我需要一些可以告诉我从a到b旋转的最小角度的东西。正号表示从+ x轴向+ y轴的旋转。相反,负号表示从+ x轴向-y轴的旋转。 问题答案: 如果您选择的数学库中有atan2()函数: