为什么c ++向量没有内置的包含方法?

时间:2017-06-18 03:24:57

标签: c++

也许我只是被Python破坏或者我不知道的东西。

但是有一个原因是c ++中的STL容器没有contains方法。我缺少某种历史原因吗?

当我必须调用find并与最后一个索引进行比较时,感觉有点奇怪。

1 个答案:

答案 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/