Functional Programming

1. std::ranges::all_ofstd::ranges::any_ofstd::ranges::none_of

template <class InputIterator, class UnaryPredicate>bool all_of (InputIterator first, InputIterator last, UnaryPredicate pred);template <class InputIterator, class UnaryPredicate>bool any_of (InputIterator first, InputIterator last, UnaryPredicate pred);template <class InputIterator, class UnaryPredicate>bool none_of (InputIterator first, InputIterator last, UnaryPredicate pred);
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> vec1{ 2,4,6,8,10 };std::vector<int> vec2{ 2,3,5,7,11,13,14,21,28,35 };/* 判断容器中是不是所有的元素都满足要求 */bool flag1 = std::all_of(vec1.cbegin(), vec1.cend(), [](int val) {if (val % 2 == 0) {return true;}else {return false;}});if (flag1){std::cout << "All numbers are even.\n";}/* 判断容器中是否有(至少一个)元素满足要求 */bool flag2 = std::any_of(vec2.cbegin(), vec2.cend(), [](int val) {if (val % 5 == 0) {return true;}else {return false;}});if (flag2){std::cout << "At least one number is divisible by 5.\n";}/* 判断容器中是不是所有元素都不满足要求 */bool flag3 = std::none_of(vec2.cbegin(), vec2.cend(), [](int val) {if (val >= 100) {return true;}else {return false;}});if (flag3){std::cout << "All numbers are less than 100.\n";}
}

2. std::iota

template <class ForwardIterator, class T>void iota (ForwardIterator first, ForwardIterator last, T val);

从初始值val开始递增1填充迭代器firstlast(不含)之间的元素。

2.1 基础类型示例

#include <iostream>
#include <vector>
#include <numeric>     // std::iotaauto main()->void {std::vector<int> vec1(20);std::iota(vec1.begin(), vec1.end(), 3);for (const auto&it: vec1){std::cout << it << " ";  // 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22}std::cout << std::endl;
}

2.2 自定义类型示例

#include <iostream>
#include <vector>
#include <numeric>     // std::iota
#include <algorithm>   // std::for_each
#include <functional>  // std::mem_fn
#include <random>template<class T>
struct Increase
{void operator()() {val_ += static_cast<T>(1);}T val_;/* std::iota会用到 */Increase& operator=(T i) { val_ = i; return *this; }
};auto main()->void {std::vector<Increase<int>> vec1(20);std::iota(vec1.begin(), vec1.end(), 0);for (const auto&it: vec1){std::cout << it.val_ << " ";    // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19}std::cout << std::endl;std::for_each(vec1.begin(), vec1.end(), std::mem_fn(&Increase<int>::operator()));//std::shuffle(vec1.begin(), vec1.end(), std::mt19937{ std::random_device{}() });for (const auto& it : vec1){std::cout << it.val_ << " ";    // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20}std::cout << std::endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/837146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

没有申请域名的情况下,用navicat远程连接我们的服务器的Mysql数据库

我们可以根据公网ip用shell来远程连接 首先我们打开自己买的服务器 例如你看这个&#xff0c;就是我们的公网IP 如果服务器里面没有安装mysql数据库的话&#xff0c;那么我们可以用一个轻量级的docker来安装数据库代替一下 我们用docker弄个轻量级的mysql5.7.36&#xff0c;…

号外!IP SSL证书申请只需十分钟!

IP SSL证书是一种专为IP地址设计的SSL证书&#xff0c;它使得基于IP地址的网站或服务能够实现HTTPS加密&#xff0c;确保数据在传输过程中的安全性和完整性。以下是关于IP SSL证书的一些技术性要点和申请流程概述&#xff1a; 一、IP SSL证书技术要点 1、适用场景&#xff1a…

x264 帧类型决策模块 x264_slicetype_analyse 函数原理分析

======================================================================== ======================================================================== x264帧类型决策 x264 的帧类型决策可以参考:

【Unity入门】协程(IEnumerator)的使用方法介绍

目录 一、前言&#xff1a;二、关于协程1、什么是协程2、协程的原理 三、协程的使用1、函数的方式2、函数名的方式3、接收返回值4、StopAllCoroutines5、禁用/销毁游戏对象6、yield return的介绍&#xff1a; 四、小结&#xff1a; 一、前言&#xff1a; 协程在Unity中是一个很…

人机协同是虚拟与真实的协同

“人机协同”是指人类与机器之间的合作与协同工作。在这种协同中&#xff0c;机器可以作为助手、辅助或扩展人类的能力&#xff0c;帮助人们完成任务&#xff0c;提高工作效率和质量。 虚拟与真实的协同是指在人机协同的过程中&#xff0c;虚拟想象世界和真实世界之间的协同。通…

【Spring】Springmvc学习Ⅲ

# Spring&#xff4d;vc学习Ⅲ 文章目录 一、图书管理系统1. 功能1.1 登录前端接口前端代码后端接口后端代码 1.2 图书列表展示步骤:图书类代码mock数据代码控制层调用代码服务层代码&#xff08;存储除数据库中需要存储的数据&#xff09; 2. 分层控制2.1 三层架构2.2 代码重…

缓存一致性

缓存数据一致性 双写模式失效模式 都会导致缓存不一致问题。 解决方案-Canal 更新 DB 会产生的 binlog&#xff0c;Canal 订阅 binlog&#xff0c;监测到数据库的更新&#xff0c;从而更新缓存。 解决方案-分布式读写锁 适用于读多写少的情况

【数据结构】-- 相交链表-环形链表

交叉链表 . - 力扣&#xff08;LeetCode&#xff09; 如果链表的两条链的长度一样&#xff0c;链表两端对齐&#xff0c;解决这个问题将会变得非常简单&#xff0c;直接分别遍历两个链表&#xff0c;想等时的节点即为所求。我们想办法让链表对齐--分别从a和b遍历链表&#xff…

Mysql与Java连接----JDBC

前言: 当将Java与MySQL数据库连接时&#xff0c;JDBC&#xff08;Java Database Connectivity&#xff09;是一种重要的技术。JDBC允许Java应用程序通过标准的数据库访问方式与不同的关系型数据库进行通信&#xff0c;其中包括MySQL。通过使用JDBC&#xff0c;Java开发人员可以…

二叉树的前序、中序、后序遍历

二叉树的前序、中序、后序 1.二叉树的前序遍历 题目&#xff1a; 二叉树的前序遍历 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,2,3]示例 2&#xff1a; 输入&#xff…

aigc的基础知识介绍

AIGC,即人工智能生成内容(Artificial Intelligence Generated Content),是一种利用人工智能技术自动生成各种形式内容的技术。以下是关于AIGC的基础知识介绍: 定义:AIGC指的是利用人工智能技术和算法来自动生成各种形式的内容,如文本、图像、音频和视频等。 发展历程:A…

LeetCode题练习与总结:不同的二叉搜索树Ⅱ--95

一、题目描述 给你一个整数 n &#xff0c;请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,nul…

Unity自定义动画-Animation动画数据-How is “fileIDToRecycleName“ generated

一般美术和程序分工明确的项目 fbx确实是和动画一一对应的&#xff1b; 但一些独立&#xff0c;或者小工作室的项目&#xff0c;就没法保证了&#xff0c;关键还是在于 Unity的 .meta 目录 查找和对比了一下 .fbx 和 .meta&#xff1a; 缓存和不缓存Animation 具体的Animat…

HCIP-Datacom-ARST自选题库_03_VLAN【26道题】

一、单选题 1.QinQ技术是一项扩展VLAN空间的技术&#xff0c;通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能。下列关于QinQ说法错误的是 灵活QinQ可以根据不同的内层Tag而加上不同的外层Tag&#xff0c;对于用户VLAN的划分更加细致 QinQ使VLA…

Golang | Leetcode Golang题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; func partition(head *ListNode, x int) *ListNode {small : &ListNode{}smallHead : smalllarge : &ListNode{}largeHead : largefor head ! nil {if head.Val < x {small.Next headsmall small.Next} else {large.Next hea…

栈的详尽技术分析

栈的详尽技术分析 一、引言 在计算机科学的领域中&#xff0c;数据结构是组织和管理数据的方式&#xff0c;对于编写高效算法而言至关重要。栈作为一种特殊的数据结构&#xff0c;其应用广泛&#xff0c;对理解程序语言的编译、内存管理以及算法设计等方面都有重要意义。 二、栈…

ue引擎游戏开发笔记(39)——npc的ai设定:追踪玩家以及瞄准

1.需求分析&#xff1a; 实现对npc的击杀和死亡反馈后&#xff0c;下一步需要赋予npc基本的ai&#xff0c;首先就是敌人要能够追踪或者说跟随玩家&#xff0c;这才能为后续npc开枪&#xff0c;对射做好准备&#xff0c;首先实现追踪玩家。 2.操作实现&#xff1a; 1.思路&…

代码随想录第六天打卡|242.有效的字母异位词,349. 两个数组的交集,202. 快乐数

242.有效的字母异位词 Python from collections import Counter class Solution:def isAnagram(self, s: str, t: str) -> bool:nCounter(s)mCounter(t)return nm C class Solution { public:bool isAnagram(string s, string t) {int Map[26]{0};for (int i0;i<s.s…

数据结构填空题专项.docx

1. 根据数据元素间关系的不同特性&#xff0c;通常可分为集合、线性 、树形 、图状 四 类基本结构。 2. 算法的 5 个特征包括&#xff1a; 有穷性、确定性 、有效性、输入和输出。 3. 数据结构中的数据元素存在“一对多”的关系称为 树形 结构。 4. 在包含 n 个元素的…

2024.5组队学习——MetaGPT智能体理论与实战(待续)

学习资料&#xff1a;项目地址——hugging-multi-agent、在线阅读、MetaGPT项目、MetaGPT中文文档 文章目录 一、环境配置1.1 配置MetaGPT1.2 配置大模型api_key1.3 测试demo 一、环境配置 全部工作在Autodl上完成&#xff0c;下面是简单记录&#xff1a; 1.1 配置MetaGPT 下…