2025-4-6-C++ 学习 有序数组、set()的一些内置函数与求和函数
C++的学习必须更加精进一些,对于好多的函数和库的了解必须深入一些。
文章目录
- 3510. 移除最小数对使数组有序 II(有序数组)
- 题目
- 参考代码
- (1)`auto it = idx.lower_bound(i);`
- 功能解释
- 可能的使用场景
- 常见错误
- (2)`int pre = *prev(it);`
- `prev(it)`
- `*prev(it)`
- `int pre = *prev(it);`
- 416. 分割等和子集
- 题目
- 题解
- C++求和函数
- 1. 使用 `std::accumulate` 函数
- 2. 使用 `std::reduce` 函数
最近我刷了有差不多六七道算法题,用的是python,但我忽然发现好多函数我会记错,就是C++的一些函数我会生硬地代入python的编码中,我忽然意识到,可能语言方面需要专一一些了,所以接下来,无论工作还是刷题,都会用C++了,python指挥偶尔用一下了。
今天,主要是对周末做的一套题和今天所学的一些知识做一个总结。
3510. 移除最小数对使数组有序 II(有序数组)
题目
3510. 移除最小数对使数组有序 II
给你一个数组 nums,你可以执行以下操作任意次数:
选择 相邻 元素对中 和最小 的一对。如果存在多个这样的对,选择最左边的一个。
用它们的和替换这对元素。
返回将数组变为 非递减 所需的 最小操作次数 。
如果一个数组中每个元素都大于或等于它前一个元素(如果存在的话),则称该数组为非递减。
示例 1:
输入: nums = [5,2,3,1]
输出: 2
解释:
元素对 (3,1) 的和最小,为 4。替换后 nums = [5,2,4]。
元素对 (2,4) 的和为 6。替换后 nums = [5,6]。
数组 nums 在两次操作后变为非递减。
示例 2:
输入: nums = [1,2,2]
输出: 0
解释:
数组 nums 已经是非递减的。
提示:
- 1 <= nums.length <= 10^5
- -10^9 <= nums[i] <= 10^9
参考代码
- 代码复制,学习灵神的讲解。
class Solution {
public:int minimumPairRemoval(vector<int>& nums) {int n = nums.size();set<pair<long long, int>> pairs; //相邻元素和,右边为那个数的下标int dec = 0; //递减的相邻对个数for(int i = 0;i + 1 < n;++i){int x = nums[i], y = nums[i + 1];if(x > y){dec++;}pairs.emplace(x + y, i);} set<int> idx;// 剩余下标for(int k1 = 0;k1 < n;++k1){idx.insert(k1);}vector<long long> a(nums.begin(), nums.end());int ans = 0;while(dec > 0){ans++;// 删除相邻元素和最小的一对auto [s, i] = *pairs.begin();pairs.erase(pairs.begin());// (1)这个函数什么意思???auto it = idx.lower_bound(i);// (当前元素,下一个数)auto nxt_it = next(it);int nxt = *nxt_it;dec -= a[i] > a[nxt]; // 旧数据// (前一个数,当前元素)if(it != idx.begin()){// (2)什么意思???int pre = *prev(it);dec -= a[pre] > a[i];// 旧数据dec += a[pre] > s;// 新数据pairs.erase({a[pre] + a[i], pre});pairs.emplace(a[pre] + s, pre);}// (下一个数,下下一个数)auto nxt2_it = next(nxt_it);if(nxt2_it != idx.end()){int nxt2 = *nxt2_it;dec -= a[nxt] > a[nxt2];// 旧数据dec += s > a[nxt2];// 新数据pairs.erase({a[nxt] + a[nxt2], nxt});pairs.emplace(s + a[nxt2], i);}a[i] = s;// 把a[nxt]加到 a[i] 中idx.erase(nxt);// 删除 nxt// dec--;}return ans;}
};
对代码中的两个问题进行学习:
(1)auto it = idx.lower_bound(i);
auto it = idx.lower_bound(i);
运用了 std::set
、std::multiset
、std::map
或者 std::multimap
这些标准库容器的 lower_bound
方法。
功能解释
lower_bound
是 C++ 标准库容器(如 std::set
、std::multiset
、std::map
、std::multimap
)提供的成员函数。它的作用是返回一个指向容器中首个不小于给定键 i
的元素的迭代器。若容器里没有不小于 i
的元素,就会返回容器的 end()
迭代器。
可能的使用场景
- 查找插入位置:当你想要把一个元素插入到有序容器里,且要保证插入后容器依旧有序时,可使用
lower_bound
来确定插入位置。 - 范围查询:结合
upper_bound
,能够实现范围查询,找出容器中处于某个区间内的所有元素。
常见错误
- 容器未排序:
lower_bound
方法假定容器是有序的。若容器无序,lower_bound
的结果将是未定义的。 - 迭代器越界:在使用返回的迭代器之前,要检查它是否等于
end()
,避免越界访问。
(2)int pre = *prev(it);
prev(it)
prev
是 C++ 标准库 <iterator>
头文件里的一个函数模板。它的作用是返回一个迭代器,该迭代器指向给定迭代器 it
之前的第 n
个位置。默认情况下,n
为 1,也就是返回前一个位置的迭代器。其函数原型如下:
template< class BidirIt >
BidirIt prev( BidirIt it, typename std::iterator_traits<BidirIt>::difference_type n = 1 );
这里要求 BidirIt
是一个双向迭代器类型,意味着支持 --
操作符,像 std::list
、std::set
、std::map
等容器的迭代器都满足这个条件。
*prev(it)
*
是解引用操作符,用于获取迭代器所指向的元素的值。因此,*prev(it)
就是获取 it
前一个位置元素的值。
int pre = *prev(it);
这行代码把 it
前一个位置元素的值赋给整型变量 pre
。要注意,这里假设迭代器 it
前一个位置的元素类型可以隐式转换为 int
类型。
416. 分割等和子集
题目
416. 分割等和子集
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
示例 1:
输入:nums = [1,5,11,5]
输出:true
解释:数组可以分割成 [1, 5, 5] 和 [11] 。
示例 2:
输入:nums = [1,2,3,5]
输出:false
解释:数组不能分割成两个元素和相等的子集。
提示:
- 1 <= nums.length <= 200
- 1 <= nums[i] <= 100
题解
- 这类题还是费劲的,要搞明白拿什么去进行迭代,首先,多少个元素,其次,和为一个数,那么这两个关键要素有了,然后再去进行迭代的状态方程和临界条件的判断,0-1背包思想,即选与不选,之后再去确定临界条件,跳出递归。
class Solution {
public:bool canPartition(vector<int>& nums) {// 计算数组 nums 中所有元素的总和int s = reduce(nums.begin(), nums.end());// 如果总和为奇数,那么不可能将数组分割成两个和相等的子集,直接返回 falseif (s % 2) {return false;}// 获取数组的长度int n = nums.size();// 定义一个二维数组 memo 用于记忆化搜索,初始值为 -1 表示该状态还未计算过// memo[i][j] 表示在前 i 个元素中是否能选出一些元素使得它们的和为 jvector memo(n, vector<int>(s / 2 + 1, -1)); // 定义一个 lambda 函数 dfs 用于深度优先搜索auto dfs = [&](this auto&& dfs, int i, int j) -> bool {// 如果 i 小于 0,说明已经遍历完所有元素// 此时只有当 j 为 0 时,才能表示在前 i 个元素中能选出一些元素使得它们的和为 jif (i < 0) {return j == 0;}// 注意这里使用引用,方便后续修改 memo 数组中的值int& res = memo[i][j]; // 如果 res 不等于 -1,说明该状态之前已经计算过,直接返回结果if (res != -1) { return res;}// 递归计算结果// 情况一:如果 j 大于等于 nums[i],可以选择当前元素 nums[i],继续递归搜索前 i - 1 个元素能否组成和为 j - nums[i] 的子集// 情况二:不选择当前元素 nums[i],继续递归搜索前 i - 1 个元素能否组成和为 j 的子集// 只要两种情况中有一个满足条件,就说明可以组成和为 j 的子集return res = j >= nums[i] && dfs(i - 1, j - nums[i]) || dfs(i - 1, j);};// 从最后一个元素开始搜索,目标和为 s / 2return dfs(n - 1, s / 2);}
};
C++求和函数
1. 使用 std::accumulate
函数
std::accumulate
函数定义于 <numeric>
头文件中,它可以对一个范围内的元素进行累加操作。
#include <iostream>
#include <vector>
#include <numeric>int main() {std::vector<int> nums = {1, 2, 3, 4, 5};int sum = std::accumulate(nums.begin(), nums.end(), 0);std::cout << "累加结果: " << sum << std::endl;return 0;
}
在这个例子中,std::accumulate
函数接收三个参数:起始迭代器、结束迭代器以及初始值。它会把指定范围内的元素累加起来,再加上初始值,最终返回累加结果。
2. 使用 std::reduce
函数
std::reduce
是 C++17 引入的并行算法,同样定义在 <numeric>
头文件中,它也可以用来求和。
#include <iostream>
#include <vector>
#include <numeric>int main() {std::vector<int> nums = {1, 2, 3, 4, 5};int sum = std::reduce(nums.begin(), nums.end());std::cout << "累加结果: " << sum << std::endl;return 0;
}
相关文章:
2025-4-6-C++ 学习 有序数组、set()的一些内置函数与求和函数
C的学习必须更加精进一些,对于好多的函数和库的了解必须深入一些。 文章目录 3510. 移除最小数对使数组有序 II(有序数组)题目参考代码(1)auto it idx.lower_bound(i);功能解释可能的使用场景常见错误 (2&…...
Flutter:Flutter SDK版本控制,fvm安装使用
1、首先已经安装了Dart,cmd中执行 dart pub global activate fvm2、windows配置系统环境变量 fvm --version3、查看本地已安装的 Flutter 版本 fvm releases4、验证当前使用的 Flutter 版本: fvm flutter --version5、切换到特定版本的 Flutter fvm use …...
GPT-4o 的“图文合体”是怎么做到的
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
PyTorch教程:如何读写张量与模型参数
本文演示了PyTorch中张量(Tensor)和模型参数的保存与加载方法,并提供完整的代码示例及输出结果,帮助读者快速掌握数据持久化的核心操作。 1. 保存和加载单个张量 通过torch.save和torch.load可以直接保存和读取张量。 import to…...
MySQL8.0.31安装教程,附pdf资料和压缩包文件
参考资料:黑马程序员 一、下载 点开下面的链接:https://dev.mysql.com/downloads/mysql/ 点击Download 就可以下载对应的安装包了, 安装包如下: 我用夸克网盘分享了「mysql」,链接:https://pan.quark.cn/s/ab7b7acd572b 二、解…...
Linux 系统中对存储设备(/dev/mmcblk、/dev/sd、/dev/nvme)进行分区、格式化或挂载的操作
在 Linux 系统中对存储设备(/dev/mmcblk、/dev/sd、/dev/nvme)进行分区、格式化或挂载的操作步骤如下: 一、确认设备信息 首先明确要操作的设备名称(如 /dev/sdb、/dev/nvme0n1),避免误操作导致数据丢失&a…...
【Kafka基础】topics命令行操作大全:高级命令解析(1)
1 创建压缩主题(Log Compaction) /export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-topics.sh --create \--bootstrap-server 192.168.10.33:9092 \--topic comtopic \--partitions 3 \--replication-factor 2 \--config cleanup.policycompact \--con…...
springboot集成spring loadbalancer实现客户端负载均衡
在 Spring Boot 中实现负载均衡,通常需要结合 Spring Cloud 组件,比如 Spring Cloud LoadBalancer。Spring Cloud LoadBalancer 是一个客户端负载均衡器,可以与 Spring Boot 集成,实现微服务之间的负载均衡。 以下是一个简单的示…...
什么是 k8s Affinity(亲和性)
在 Kubernetes(K8s)中,Affinity(亲和性) 是一种 Pod 调度策略,它用于控制 Pod 在什么条件下可以被调度到特定的节点上。它比 Taints 和 Tolerations 更灵活,可以基于 节点属性 或 Pod 之间的关系…...
深度探索:策略学习与神经网络在强化学习中的应用
深度探索:策略学习与神经网络在强化学习中的应用 策略学习(Policy-Based Reinforcement Learning)一、策略函数1.1 策略函数输出的例子 二、使用神经网络来近似策略函数:Policy Network ,策略网络2.1 策略网络运行的例子2.2需要的几个概念2.3神经网络近似…...
用VAE作为标题显示标题过短,所以标题变成了这样
VAE (Variational Autoencoder / 变分自编码器) 基本概念: VAE 是一种生成模型 (Generative Model),属于自编码器 (Autoencoder) 家族。 它的目标是学习数据的潜在表示 (Latent Representation),并利用这个表示来生成新的、与原始数据相似的数据。 与标…...
【day27】测试策略升级方案:需求阶段介入与业务规则覆盖矩阵设计
测试策略升级方案:需求阶段介入与业务规则覆盖矩阵设计 一、需求评审阶段:主动识别业务逻辑问题 在需求评审时,测试团队应通过结构化提问提前暴露潜在风险,避免后期返工。以下为提问框架与示例: 1. 业务逻辑澄清提问模…...
AI烘焙大赛中的算法:理解PPO、GRPO与DPO的罪简单的方式
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...
二分 —— 基本算法刷题路程
一、1.求阶乘 - 蓝桥云课 算法代码: #include <bits/stdc.h> using namespace std; #define ll long long ll check(ll n) {ll cnt0;while(n){cnt(n/5);}return cnt; }int main() {ll k;cin>>k;ll L0,R1e19;while(L<R){ll mid(LR)>>1;if(che…...
内存序问题排查
1 内存序 2 简介 std::memory_order 是 C11 引入的一个枚举类型,用于和 <atomic> 原子操作一起使用,控制多线程环境下内存的可见性和执行顺序。 它的主要作用是:告诉编译器和 CPU,在执行某个原子操作时,哪些内…...
历年跨链合约恶意交易详解(四)——Chainswap20210711
漏洞合约函数 function receive(uint256 fromChainId, address to, uint256 nonce, uint256 volume, Signature[] memory signatures) virtual external payable {_chargeFee();require(received[fromChainId][to][nonce] 0, withdrawn already);uint N signatures.length;r…...
Johnson
理论 全源最短路算法 Floyd 算法,时间复杂度为 O(n)跑 n 次 Bellman - Ford 算法,时间复杂度是 O(nm)跑 n 次 Heap - Dijkstra 算法,时间复杂度是 O(nmlogm) 第 3 种算法被 Johnson 做了改造,可以求解带负权边的全源最短路。 J…...
spring boot + Prometheus + Grafana 实现项目监控
一、引入依赖 <dependencies><!-- Spring Boot Starter Actuator --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- Micrometer Reg…...
Mythical Beings:第八季即将回归,探索新的神话传承
Mythical Beings是由Tarasca Art & Games开发的、基于Ignis区块链的卡牌收集游戏。自发布以来,这款游戏以其独特的玩法和深厚的神话背景吸引了大量玩家的关注。每张卡牌不仅代表着独特的游戏属性,还融合了丰富的文化和神话故事,使玩家不仅…...
Linux中查看占用端口号的进程信息的方法
在 Linux 中查看占用 ** 端口(eg:1717)**的进程号(PID),可以通过以下命令实现: 方法 1:使用 netstat 命令 sudo netstat -tulnp | grep :1717参数解释: -t:查看 TCP 端口…...
批量将 txt/html/json/xml/csv 等文本拆分成多个文件
我们的文本文件太大的时候,我们通常需要对文本文件进行拆分,比如按多少行一个文件将一个大的文本文件拆分成多个小的文本文件。这样我们在打开或者传输的时候都比较方便。今天就给大家介绍一种同时对多个文本文件进行批量拆分的方法,可以快速…...
爱普生高精度车规晶振助力激光雷达自动驾驶
在自动驾驶技术快速落地的今天,激光雷达作为车辆的“智慧之眼”,其测距精度与可靠性直接决定了自动驾驶系统的安全上限。而在这双“眼睛”的核心,爱普生(EPSON)的高精度车规晶振以卓越性能成为激光雷达实现毫米级感知的…...
Spring Boot 自定义 Redis Starter 开发指南(附动态 TTL 实现)
一、功能概述 本 Starter 基于 Spring Boot 2.7 实现以下核心能力: Redis 增强:标准化 RedisTemplate 配置(JSON 序列化 LocalDateTime 支持)缓存扩展:支持 Cacheable(value “key#60s”) 语法动态设置 TTL配置集中…...
区分CRI、OCI、containerd、Docker、CRI-O、runc等名词概念
这些概念可以分为: 一、容器运行时Container Runtimes a、规范OCI (Open Container Initiative) 定义:OCI 是一个开放标准,用于定义容器格式和运行时的规范。它旨在确保容器镜像的格式和容器运行时的操作方式在不同的实现之间保持兼容性。 •…...
#关于process.env.NODE_ENV 与 import.meta.env 相关了解
process.env.NODE_ENV 在前端 Vue 项目中非常重要,但它其实是个“假象”,在前端它并不是原生就有的变量。下面我从多个角度来给你通俗讲明白它的由来和使用方式 👇 🌐 一、process.env.NODE_ENV 是干嘛用的? 这是 一个…...
R语言赋能气象水文科研:从多维数据处理到学术级可视化
全球气候变化加剧了极端天气与水文事件的复杂性,气象卫星、雷达、地面观测站及水文传感器每天产生TB级时空异质数据。传统研究常面临四大瓶颈: 数据清洗低效:缺失值、异常值处理耗时;时空分析模型构建复杂࿱…...
MySQL 约束(入门版)
目录 一、约束的基本概念 二、约束演示 三、外键约束 (一)介绍 (二)外键约束语法 (三)删除/更新行为 一、约束的基本概念 1、概念:约束是作用于表中字段上的规则,用于限制存储…...
【go】类型断言
接口-类型断言 Type Assertion Type Assertion(中文名叫:类型断言),通过它可以做到以下几件事情 检查 i 是否为 nil(是nil直接抛出panic)检查 i 存储的值是否为某个类型 具体的使用方式有两种ÿ…...
(复看)CExercise_06_1指针和数组_2 给定一个double数组,求平均值,并且返回
题目: 求平均值,给定一个double数组,求平均值,并且返回。 要求使用while循环遍历数组,然后配合"*p"的语法实现。 函数的声明如下: double get_ave(double *arr, int len); 关键点 分析࿱…...
Ubuntu 服务器上运行相关命令,关闭终端就停止服务,怎么才能启动后在后台运行?
环境: Ubuntu 20.04 LTS 问题描述: Ubuntu 服务器上运行相关命令,关闭终端就停止服务,怎么才能启动后在后台运行? bash docker/entrypoint.sh解决方案: bash docker/entrypoint.sh 脚本在后台运行&…...
ffmpeg提取字幕
使用ffmpeg -i test.mkv 获取视频文件的字幕流信息如下 Stream #0:4(chi): Subtitle: subrip (srt) (default) Metadata: title : chs Stream #0:5(chi): Subtitle: subrip (srt) Metadata: title : cht Stream #0:6(jpn)…...
深入理解Socket编程:构建简单的计算器服务器
一、Socket通信基础 1. Socket通信基本流程 服务器端流程: 创建Socket (socket()) 绑定地址和端口 (bind()) 监听连接 (listen()) 接受连接 (accept()) 数据通信 (read()/write()) 关闭连接 (close()) 客户端流程: 创建Socket (socket()) 连接…...
CPU狂飙900%,该怎么处理
首先,说明一下问题:CPU飙升200% 以上是生产容易发生的场景 场景:1:MySQL进程飙升900% 大家在使用MySQL过程,想必都有遇到过CPU突然过高,或者达到200%以上的情况。 数据库执行查询或数据修改操作时,系统需…...
C++继承完全指南:从语法到设计模式----图解原理+工业级代码示例+陷阱规避
🔮✨⚡️🌌 欢迎来到张有志的量子编程次元 🌌⚡️✨🔮 ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ 🛸 核心探索舱 🛸 ⇩⇩⇩ 正在加载未来代码 ⇩⇩⇩ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔…...
使用Pholcus编写Go爬虫示例
想用Pholcus库来写一个Go的爬虫程序。首先,我得确认Pholcus的当前状态,因为之前听说过它可能已经不再维护了。不过用户可能还是需要基于这个库的示例,所以得先提供一个基本的框架。 首先,我应该回忆一下Pholcus的基本用法。Pholc…...
R Excel 文件:高效数据处理与可视化工具的完美结合
R Excel 文件:高效数据处理与可视化工具的完美结合 引言 在数据分析和处理领域,R语言因其强大的数据处理能力和丰富的可视化功能而备受青睐。而Excel作为最常用的电子表格软件,其广泛的应用也使得R与Excel的结合成为数据处理与可视化的理想…...
Python设计模式:适配模式
1. 适配模式(Adapter Pattern)详解 适配模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一种接口。适配模式使得原本由于接口不兼容而无法一起工作的类可以协同工作。换句话说…...
Python设计模式:策略模式
1. 什么是策略模式 策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,并使它们可以互换。策略模式使得算法的变化独立于使用算法的客户。换句话说,策略模式允许在运…...
Unity Internal-ScreenSpaceShadows 分析
一、代码结构 // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)Shader "Hidden/Internal-ScreenSpaceShadows" {Properties {_ShadowMapTexture ("", any) "" {} // 阴影贴图纹理&…...
nginx配置oss代理
工作中会有一些时候需要将图片,视频,音频等文件放到oss这种对象存储中进行存储,实现高性能的访问,这种情况叫做动静分离.这里只做了图片的配置,视频以及音频的配置是一样的. 以下是nginx.conf的配置信息,其中还有ssl的加密配置,以及后端服务器的代理模块配置,(这里不用的话可以…...
UML对象图
UML对象图 一、对象图核心概念 对象图(Object Diagram)描述的是系统在某一时刻对象(实例)的状态快照。它关注的是实际对象之间的实例关系,而不是类与类之间的静态结构。主要特点有: 对象(Ob…...
手机不同App音量自动调节软件
软件介绍 在日常使用手机的过程中,大家是不是经常会遇到在不同App之间切换时,需要频繁调整音量的情况呢?这样真的很不方便。而一款名为App Volume Control的软件就能很好地解决这个问题。 App Volume Control借助辅助功能服务,能…...
模板方法模式详解
模板方法模式详解及真实场景解决方案 推荐学习完策略模式和模板方法模式看这个案例: 策略与模板方法模式组合详解 模式定义 模板方法模式是一种行为设计模式,在父类中定义算法的骨架,允许子类在不改变算法结构的情况下重写特定步骤。核心思…...
基于SSM邮件收发管理系统(带源码、论文)
摘要 随着互联网技术的迅速发展和普及,网络通信已经成了人们离不开的通信手段。作为最早出现的网络通信方式还有世界上应用最为广泛的网络服务之一,电子邮件综合了电话通信和传统邮件的特点,具有传播速度快、价格低廉的优良特性。随着技术发…...
1990-2019年各地级市GDP数据
1990-2019年各地级市GDP数据 1、时间:1990-2019年 2、来源:城市年鉴 3、指标:行政区划代码、年份、省份、城市、经度、纬度、地区生产总值(万元) 4、范围:250地级市 5、指标解释:地区生产总值(Gross R…...
Scala相关知识学习总结5
1、多维数组 定义: val arr Array.ofDim[Double](3,4) 表示二维数组中有三个一维数组,每个一维数组有四个元素。 2、列表 List 不可变 List:默认不可变,可创建有序且可重复的列表,可使用:从右向左增加数据…...
【LangChain Agent 】详解,构建自主决策的 LLM 应用
🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是 Lang Chain 2、什么是 Agent 二、LangChain …...
Scala基础知识7
一,可变数组和不可变数组的转换方法: 不可变数组转换为可变数组使用 toBuffer 函数. 可变数组转换为不可变数组使用 toArray 函数。 转换过程中原始数组不会发生变化,而是返回一个新的数组。 二,多维数组 使用 Array of 函数创建多维数组&am…...
vmware、centos: 快照、redis集群克隆、启动异常
问题描述 提示:这里描述项目中遇到的问题: 启动虚拟机报错: 指定的虚拟磁盘需要进行修复 打不开磁盘“D:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位-000001.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机…...
visual studio断点无法进入
问题背景: 使用VSQt进行编码,新增函数处断点无法进入。 问题排查 查看moc文件,汇编代码以及设置调试选项均不生效。 原因分析 之前无意间进行了排版优化,导致新增的代码未正常编译进去,通过“文件-> 高级保存选…...