std::includes
是documented as
如果排序范围 [first2,last2]中的每个元素都是,则返回true 在排序范围 [first1,last1]中找到。如果,也返回true [first2,last2)是空的。
重点是我的。
是否有一个等效的C ++算法可以在容器的未排序范围内重现此功能,或者我是否必须通过循环返回自己实现这个功能?
答案 0 :(得分:5)
如果您首先对范围进行排序,则排序将在O( n log n )时间运行,搜索将在O( m + n )时间。如果您尝试在未排序的范围内天真地执行此操作,它将在O( m · n )时间运行。 通常通常只是排序。
但是,search
可以有效地为子字符串提供未排序的范围。这是我能想到的最接近你要求的东西。