ITKeyword,专注技术干货聚合推荐

注册 | 登录

c++之STL(13) STL 算法 - 查找算法(2)search_n() search_n(b, e, c, v) search_n(b, e, c, v, p)

taotaoah 分享于 2016-08-04

推荐:c++之STL(13) STL 算法 - 查找算法(1)

常用的查找算法如下: find() find_if() // search_n() search() find_end() find_first_of() adjacent_find() // 这两种方法通用,对所有容器试用,但是查找效

2019阿里云双11返场狂欢继续,
地址https://www.aliyun.com/1111/2019/home

search_n() 用来查找连续的n个匹配的数值 或者 加谓词 search_n(b, e, c, v) search_n(b, e, c, v, p) 注意:该方法的第二种形式应该是search_n_if(b, e, c, p) #include<iostream>#include<algorithm>#include<deque>//#include<functional>//using namespace std;int main(){

deque<int> ideq;

for (int i = 1; i <= 9; i++)

{

if (i == 3)

{

ideq.push_back(i);

ideq.push_back(i);

ideq.push_back(i);

ideq.push_back(i);

}

else

{

ideq.push_back(i);

}

}

for (deque<int>::iterator iter = ideq.begin(); iter != ideq.end(); iter++)

cout << *iter << endl;

/*if (pos != string::npos)

cout << "找到了!" << pos << endl;

else

cout << "没找到!&q

推荐:STL_算法_查找算法(search_n)

C++ Primer 学习中。。。

简单记录下我的学习过程 (代码为主)

search_n

//查找连续的n个满足条件的。。

#include<iostream>#include<cstdio>#inclu

uot; << endl;*/

deque<int>::iterator pos;

pos = search_n(ideq.begin(), ideq.end(), 4, 3);

if (pos != ideq.end())

{

cout << "找到了连续的4个3!,序号位置" << distance(ideq.begin(), pos) + 1 << endl;

}

else

{

cout << "没找到!" << endl;

}

// 这里的谓词是 二元 的

pos = search_n(ideq.begin(), ideq.end(), 3, 6, greater<int>());

//pos = search_n_if(ideq.begin(), ideq.end(), 3, bind2nd(greater<int>(), 6));

if (pos != ideq.end())

{

cout << "找到了连续的3个大于6的数!start with" << distance(ideq.begin(), pos) + 1 << endl;

}

else

cout << "没找到!" << endl;

//

system("pause");

return 0;}

推荐:STL_算法_查找算法(binary_search、includes)

C++ Primer 学习中。。。   简单记录下我的学习过程 (代码为主) 所有容器适用(O(log(n)))     已序区间查找算法 binary_search             //二分查找,返回boo

search_n() 用来查找连续的n个匹配的数值 或者 加谓词 search_n(b, e, c, v) search_n(b, e, c, v, p) 注意:该方法的第二种形式应该是search_n_if(b, e, c, p) #include<iostream>#include<al

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。