首页 / C++ / C++第12课 STL算法 (一)
C++第12课 STL算法 (一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++第12课 STL算法 (一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2102字,纯文字阅读大概需要4分钟。
内容图文
1.查找算法
find: 区间查找
find_first_of: 查找区间第一次出现
adjacent_find: 查找第一次重复的数
search: 子序列查找
search_n: 子序列查找出现次数
count: 区间统计
count_if: 条件统计
equal: 比较
有序查找:
binary_search: 二分查找
upper_bound: 查找最后一个大于查找的值
lower_bound: 大于等于查找的值
equal_range: 区间比较,必须是有序序列
void testSearch() { int array[10] = { 1,3,5,7,8,2,0,1,34,9 }; vector<int> vec; vec.assign(array, array + 10); //1.基本查找 auto result = find(vec.begin(), vec.end(), 1); if (result != vec.end()) { cout << *result << endl; } //2.条件查找 auto findIf = find_if(vec.begin(), vec.end(), [](int vec) { return vec > 7; }); if (findIf != vec.end()) { cout << *findIf << endl; } //3.范围查找 find_first_ofint temp[] = { 9,5,1,3,2,4,6,8,0 }; auto findRange = find_first_of(vec.begin(), vec.end(), temp, temp + 9); cout << *findRange << endl; //4.找第一次重复的元素 vector<int> value = { 1,1,2,3,4,5,6,7,9,9 }; cout << *adjacent_find(value.begin(), value.end()) << endl; //找子串int num[] = { 1,2,3 }; cout << *search(value.begin(), value.end()-1, num, num + 3) << endl; //找指定出现次数的元素(重复出现的,连续的) //查找连续4个2的位置 cout << *search_n(value.begin(), value.end(), 4, 2) << endl; //查找连续4个大于4个元素的的位置 cout << *search_n(value.begin(), value.end(), 4, 4, [](int i, int j) {return i > j; }) << endl; //统计次数 cout << count(value.begin(), value.end(), 2) << endl; //条件统计 cout << count_if(value.begin(), value.end(), [](int i, int j = 3) {return i > j; }) << endl; //比较 cout << equal(array, array + 10, vec.begin(), vec.end()) << endl; //二分查找 返回的是bool sort(vec.begin(), vec.end()); cout << binary_search(vec.begin(), vec.end(), 4) << endl; //大于 cout << *upper_bound(vec.begin(), vec.end(), 8) << endl; //小于等于 cout << *lower_bound(vec.begin(), vec.end(), 8) << endl; //equal_range: 返回值是一个pair : first:等于 second:大于 cout << *equal_range(vec.begin(), vec.end(), 8).first << endl; cout << *equal_range(vec.begin(), vec.end(), 8).second << endl; }
原文:https://www.cnblogs.com/creature-lurk/p/15253129.html
内容总结
以上是互联网集市为您收集整理的C++第12课 STL算法 (一)全部内容,希望文章能够帮你解决C++第12课 STL算法 (一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。