【发布时间】:2020-09-26 15:07:13
【问题描述】:
假设,我有一个值 x=10,我有一个名为 vec 的向量。现在,请看一下sn-p,如果你能帮助我消除我的疑问,那就太好了。
if(find(vec.begin(),vec.end(),x)==vec.end())
{ statement; }
现在,我的问题是我在向量上找到 x。如果我能够在此向量中找到 x,则将执行“语句”。为什么我必须在那里写“==vec.end()”?这个特殊的东西有什么作用?
【问题讨论】:
-
那是因为
std::find()返回的是一个迭代器,而不是一个布尔值。 -
如果在向量中找到
x,那么它就不是== vec.end(),所以只有在没有找到x时才会执行语句。