也许我只是被Python破坏或者我不知道的东西。
但是有一个原因是c ++中的STL容器没有contains方法。我缺少某种历史原因吗?
当我必须调用find并与最后一个索引进行比较时,感觉有点奇怪。
答案 0 :(得分:0)
我明白你认为将find调用与序列的最后一个索引之后的一个索引进行比较是很奇怪的。
另一种方法是使用C ++ 11中的any_of方法。 如果序列上的任何项满足某个一元谓词,则Any_of返回true,否则返回false。
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> sequence = {1,3,5,8,134,1,4,3,-10,2};
if(std::any_of(sequence.begin(), sequence.end(), [](int i){ return i == 2} ))
std::cout << "Number 2 was found on the sequence" << std::endl;
else
std::cout << "Number 2 was not found on the sequence" << std::endl;
}
以下是any_of方法的参考。 http://www.cplusplus.com/reference/algorithm/any_of/