C++初学者指南-5.标准库(第一部分)--标准库查询存在算法

C++初学者指南-5.标准库(第一部分)--标准库查询存在算法

文章目录

不熟悉 C++ 的标准库算法? ⇒ 简介

any_of / all_of / none_of

如果在输入范围(所有元素,任意一个元素或没有元素)内check的结果为true,则返回true。
cppreference

cpp 复制代码
std::vector<int> v {0,2,9,1,3,8,5,2,9};
auto const check = [](int x) { return x >= 1; };
// 在子范围内(如图所示):
cout << all_of (begin(v)+1, begin(v)+7, check);  // true
cout << any_of (begin(v)+1, begin(v)+7, check);  // true
cout << none_of(begin(v)+1, begin(v)+7, check);  // false
// 整个vector:
cout << all_of (begin(v), end(v), check);  // false
cout << any_of (begin(v), end(v), check);  // true
cout << none_of(begin(v), end(v), check);  // false

运行示例代码

cppreference

cpp 复制代码
std::vector<int> v {0,2,9,1,3,8,5,2,9};
auto const check = [](int x) { return x >= 1; };
cout << std::ranges::all_of (v, check);  // false
cout << std::ranges::any_of (v, check);  // true
cout << std::ranges::none_of(v, check);  // false

运行示例代码

count


cppreference

cpp 复制代码
std::vector<int> v {5,2,9,1,3,2,5,2,2,9};
// 子范围内计数(如图所示):
auto n = count(begin(v)+1, begin(v)+8, 2);  // n = 3
// 整个vector计数:
auto m = count(begin(v), end(v), 2);  // m = 4

运行示例代码

cppreference

cpp 复制代码
std::vector<int> v {2,9,1,3,2,5,2};
cout << std::ranges::count(v, 3);  // 1
cout << std::ranges::count(v, 2);  // 3
cout << std::ranges::count(v, 7);  // 0

运行示例代码

count_if


cppreference

cpp 复制代码
std::vector<int> v {5,4,9,1,3,2,5,6,8,9};
auto const is_even = [](int x) { return !(x & 1); };
// 子范围内计数(如图所示):
auto n = count_if (begin(v)+1, begin(v)+8, is_even);  // n = 3
// 整个vector计数:
auto m = count_if (begin(v), end(v), is_even);  // m = 4

运行示例代码

cppreference

cpp 复制代码
std::vector<int> v {4,9,1,3,2,5,6};
auto const is_even = [](int x) { return !(x & 1); };
auto n = std::ranges::count_if(v, is_even);  // n = 3

运行示例代码

相关内容

视频:count, count_if and more by Conor Hoekstra
标准算法概述
C++标准库算法介绍
标准序列容器(vector、deque、list、...)
标准关联容器(map、set、...)
标准序列视图
cppreference:算法库
cppreference:容器库
视频:什么是 C++ 标准库?
视频:一小时内掌握 105 个 STL 算法 (Jonathan Boccara,2018)
C++ 之旅:容器和算法

算法概述表:

附上原文链接

如果文章对您有用,请随手点个赞,谢谢!^_^

相关推荐
凭君语未可3 分钟前
豆包MarsCode:小C点菜问题
算法
深蓝海拓16 分钟前
Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用
数据库·python·qt·pyqt
C语言魔术师23 分钟前
【小游戏篇】三子棋游戏
前端·算法·游戏
自由自在的小Bird23 分钟前
简单排序算法
数据结构·算法·排序算法
刘好念27 分钟前
[OpenGL]实现屏幕空间环境光遮蔽(Screen-Space Ambient Occlusion, SSAO)
c++·计算机图形学·opengl·glsl
C嘎嘎嵌入式开发2 小时前
什么是僵尸进程
服务器·数据库·c++
Yeats_Liao4 小时前
Navicat 导出表结构后运行查询失败ERROR 1064 (42000): You have an error in your SQL syntax;
数据库·sql
明月看潮生5 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原
数据库·青少年编程·postgresql·编程与数学
明月看潮生5 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 14课题、触发器的编写
数据库·青少年编程·postgresql·编程与数学
王老师青少年编程7 小时前
gesp(C++五级)(14)洛谷:B4071:[GESP202412 五级] 武器强化
开发语言·c++·算法·gesp·csp·信奥赛