当前位置: 首页 > article >正文

C++编译期字符串加密

1、非修改序列算法这些算法不会改变它们所操作的容器中的元素。1.1 find 和 find_iffind(begin, end, value)查找第一个等于value的元素返回迭代器未找到返回end。find_if(begin, end, predicate)查找第一个满足谓词的元素。find_end(begin, end, sub_begin, sub_end)查找子序列最后一次出现的位置。vectorint nums {1, 3, 5, 7, 9}; // 查找值为5的元素 auto it find(nums.begin(), nums.end(), 5); if (it ! nums.end()) { cout found: *it endl; // 输出5 } // 查找第一个大于6的元素 auto it2 find_if(nums.begin(), nums.end(), [](int x) { return x 6; }); cout first 6: *it2 endl; // 输出7 // 查找子序列 vectorint sub {3, 5}; auto it3 find_end(nums.begin(), nums.end(), sub.begin(), sub.end()); if (it3 ! nums.end()) { cout subsequence starts at index: it3 - nums.begin() endl; // 输出1 }1.2 count 和 count_ifcount(begin, end, value)统计等于value的元素个数。count_if(begin, end, predicate)统计满足谓词predicate的元素个数。std::vectorint vec {1, 2, 3, 2, 4, 2}; int cnt std::count(vec.begin(), vec.end(), 2); // 计数2的个数结果为3 int even_cnt std::count_if(vec.begin(), vec.end(), [](int x) { return x % 2 0; }); // 偶数个数结果为41.3 for_each对范围内的每个元素应用一个函数std::vectorint vec {1, 2, 3, 4, 5}; std::for_each(vec.begin(), vec.end(), [](int x) { x * 2; // 将每个元素乘以2 }); // 现在vec变为{2, 4, 6, 8, 10}1.4 equal 与 mismatchequal(b1, e1, b2)判断两个范围[b1,e1)和[b2, b2(e1-b1))是否相等。mismatch(b1, e1, b2)返回两个范围中第一个不相等元素的迭代器对pair。vectorint a {1, 2, 3}; vectorint b {1, 2, 4}; vectorint c {1, 2, 3, 4}; // 比较a和b的前3个元素 bool is_equal equal(a.begin(), a.end(), b.begin()); cout a b? boolalpha is_equal endl; // 输出false // 查找a和c的第一个不匹配元素 auto mis mismatch(a.begin(), a.end(), c.begin()); if (mis.first ! a.end()) { cout mismatch: *mis.first vs *mis.second endl; // 无输出a和c前3元素相等 }1.5 all_of, any_of, none_of检查范围内元素是否全部、存在或没有满足条件的std::vectorint vec {2, 4, 6, 8}; bool all_even std::all_of(vec.begin(), vec.end(), [](int x) { return x % 2 0; }); // true bool any_odd std::any_of(vec.begin(), vec.end(), [](int x) { return x % 2 ! 0; }); // false bool none_negative std::none_of(vec.begin(), vec.end(), [](int x) { return x 0; }); // true2、修改序列算法这些算法会修改它们所操作的容器中的元素。2.1 copy 和 copy_ifcopy(begin, end, dest)将[begin, end)中的元素复制到dest开始的位置。copy_if(begin, end, dest, predicate)复制满足谓词的元素到dest。vectorint src {1, 2, 3, 4, 5}; vectorint dest(5); // 需预先分配足够空间 // 复制所有元素 copy(src.begin(), src.end(), dest.begin()); // dest: [1,2,3,4,5] // 复制偶数元素到新容器 vectorint evens; copy_if(src.begin(), src.end(), back_inserter(evens), [](int x) { return x % 2 0; }); // evens: [2,4]注意back_inserter(dest)会自动调用push_back无需提前分配空间。2.2 transform对范围内的每个元素应用一个函数并将结果存储在另一个范围内vectorint nums {1, 2, 3}; vectorint squares(3); // 计算平方单参数转换 transform(nums.begin(), nums.end(), squares.begin(), [](int x) { return x * x; }); // squares: [1,4,9] // 两容器元素相加双参数转换 vectorint a {1, 2, 3}; vectorint b {4, 5, 6}; vectorint sum(3); transform(a.begin(), a.end(), b.begin(), sum.begin(), [](int x, int y) { return x y; }); // sum: [5,7,9]2.3 replace、replace_if与 replace_copyreplace(begin, end, old_val, new_val)将所有old_val替换为new_val。replace_if(begin, end, predicate, new_val)替换满足谓词的元素。replace_copy(begin, end, dest, old_val, new_val)复制时替换元素不修改原容器。vectorint nums {1, 2, 3, 2, 5}; // 替换所有2为20 replace(nums.begin(), nums.end(), 2, 20); // nums: [1,20,3,20,5] // 替换大于10的元素为0 replace_if(nums.begin(), nums.end(), [](int x) { return x 10; }, 0); // nums: [1,0,3,0,5] // 复制时替换3为300原容器不变 vectorint res; replace_copy(nums.begin(), nums.end(), back_inserter(res), 3, 300); // res: [1,0,300,0,5]2.4 remove、remove_if 与 eraseremove(begin, end, value)将等于value的元素 “移动” 到容器末尾返回新的逻辑尾迭代器不实际删除元素需配合erase。remove_if(begin, end, predicate)移动满足谓词的元素到末尾。vectorint nums {1, 2, 3, 2, 4}; // 逻辑删除所有2移动到末尾 auto new_end remove(nums.begin(), nums.end(), 2); // nums: [1,3,4,2,2] // 物理删除真正移除元素 nums.erase(new_end, nums.end()); // nums: [1,3,4] // 结合lambda删除偶数 nums {1, 2, 3, 4, 5}; nums.erase(remove_if(nums.begin(), nums.end(), [](int x) { return x % 2 0; }), nums.end()); // nums: [1,3,5]2.5 unique移除范围内连续的重复元素返回新的逻辑结尾迭代器。通常与erase结合使用。std::vectorint vec {1, 1, 2, 2, 3, 3, 3, 4, 5}; auto last std::unique(vec.begin(), vec.end()); vec.erase(last, vec.end()); // vec变为{1, 2, 3, 4, 5}2.6 reverse反转范围内的元素顺序std::vectorint vec {1, 2, 3, 4, 5}; std::reverse(vec.begin(), vec.end()); // vec变为{5, 4, 3, 2, 1}2.7 rotate旋转范围内的元素使中间元素成为新的第一个元素std::vectorint vec {1, 2, 3, 4, 5}; std::rotate(vec.begin(), vec.begin() 2, vec.end()); // 以3为起点旋转vec变为{3, 4, 5, 1, 2}2.8 shuffle随机重排范围内的元素需要C11或更高版本#include random #include algorithm std::vectorint vec {1, 2, 3, 4, 5}; std::random_device rd; std::mt19937 g(rd()); std::shuffle(vec.begin(), vec.end(), g); // 随机打乱vec中的元素3、排序和相关算法3.1 sort、stable_sort 与 partial_sortsort(begin, end)对元素进行快速排序不稳定平均时间复杂度 O (n log n)。stable_sort(begin, end)稳定排序相等元素相对位置不变。partial_sort(begin, mid, end)部分排序使[begin, mid)为整个范围中最小的元素并排序。std::vectorint vec {5, 3, 1, 4, 2}; std::sort(vec.begin(), vec.end()); // 默认升序vec变为{1, 2, 3, 4, 5} std::sort(vec.begin(), vec.end(), std::greaterint()); // 降序vec变为{5, 4, 3, 2, 1} std::sort(vec.begin(), vec.end(), [](int a, int b) { return a b; }); // 升序自定义比较 std::vectorstd::pairint, int vec {{1, 2}, {2, 1}, {1, 1}, {2, 2}}; std::stable_sort(vec.begin(), vec.end(), [](const auto a, const auto b) { return a.first b.first; // 按first排序保持相等元素的相对顺序 }); std::vectorint vec {5, 3, 1, 4, 2, 6}; // 将最小的3个元素放在前面并排序 std::partial_sort(vec.begin(), vec.begin() 3, vec.end()); // 现在vec前三个元素是1, 2, 3后面是未排序的4, 5, 63.2 nth_element重新排列范围使得指定位置的元素等于排序后的元素并且左边的元素都不大于它右边的元素都不小于它std::vectorint vec {5, 3, 1, 4, 2, 6}; // 找到第三小的元素索引2 std::nth_element(vec.begin(), vec.begin() 2, vec.end()); // 现在vec[2]是3它左边的元素3右边的33.3 binary_search、lower_bound、upper_bound需在已排序的容器上使用binary_search(begin, end, value)判断value是否存在返回bool。lower_bound(begin, end, value)返回第一个不小于value的元素迭代器。upper_bound(begin, end, value)返回第一个大于value的元素迭代器。vectorint sorted {1, 3, 3, 5, 7}; // 必须先排序 // 判断3是否存在 bool exists binary_search(sorted.begin(), sorted.end(), 3); // true // 查找第一个3的元素 auto lb lower_bound(sorted.begin(), sorted.end(), 3); cout lower_bound index: lb - sorted.begin() endl; // 输出1 // 查找第一个3的元素 auto ub upper_bound(sorted.begin(), sorted.end(), 3); cout upper_bound index: ub - sorted.begin() endl; // 输出33.4 merge合并两个已排序的范围到新容器保持排序vectorint a {1, 3, 5}; vectorint b {2, 4, 6}; vectorint merged(a.size() b.size()); // 合并a和b均需已排序 merge(a.begin(), a.end(), b.begin(), b.end(), merged.begin()); // merged: [1,2,3,4,5,6]4、堆算法STL提供了将范围作为堆来操作的算法包括make_heap,push_heap,pop_heap,sort_heap等。std::vectorint vec {4, 1, 3, 2, 5}; std::make_heap(vec.begin(), vec.end()); // 构建最大堆vec变为{5, 4, 3, 2, 1} vec.push_back(6); std::push_heap(vec.begin(), vec.end()); // 将新元素加入堆vec变为{6, 4, 5, 2, 1, 3} std::pop_heap(vec.begin(), vec.end()); // 将最大元素移到末尾vec变为{5, 4, 3, 2, 1, 6} int max_val vec.back(); // 获取最大元素6 vec.pop_back(); // 移除最大元素 std::sort_heap(vec.begin(), vec.end()); // 将堆排序为升序序列vec变为{1, 2, 3, 4, 5}5、最小/最大值算法5.1 min 和 max返回两个值或初始化列表中的最小/最大值int a 5, b 3; int min_val std::min(a, b); // 3 int max_val std::max(a, b); // 5 auto min_of_list std::min({4, 2, 8, 5, 1}); // 1 auto max_of_list std::max({4, 2, 8, 5, 1}); // 85.2 min_element 和 max_element返回范围内的最小/最大元素的迭代器std::vectorint vec {3, 1, 4, 2, 5}; auto min_it std::min_element(vec.begin(), vec.end()); // 指向1 auto max_it std::max_element(vec.begin(), vec.end()); // 指向55.3 minmax_element (C11)同时返回范围内的最小和最大元素的迭代器std::vectorint vec {3, 1, 4, 2, 5}; auto minmax std::minmax_element(vec.begin(), vec.end()); // minmax.first指向1minmax.second指向56、数值算法在numeric中6.1 accumulate计算范围内元素的累加和或自定义操作#include numeric std::vectorint vec {1, 2, 3, 4, 5}; int sum std::accumulate(vec.begin(), vec.end(), 0); // 和初始值为0结果为15 int product std::accumulate(vec.begin(), vec.end(), 1, std::multipliesint()); // 乘积初始值为1结果为1206.2 inner_product计算两个范围的内积或自定义操作std::vectorint a {1, 2, 3}; std::vectorint b {4, 5, 6}; int dot std::inner_product(a.begin(), a.end(), b.begin(), 0); // 1*4 2*5 3*6 326.3 iota用连续递增的值填充范围std::vectorint vec(5); std::iota(vec.begin(), vec.end(), 10); // 填充为10, 11, 12, 13, 146.4 partial_sum计算部分和将结果存储在目标范围内std::vectorint src {1, 2, 3, 4, 5}; std::vectorint dst(src.size()); std::partial_sum(src.begin(), src.end(), dst.begin()); // dst变为{1, 3, 6, 10, 15}6.5 adjacent_difference计算相邻元素的差值将结果存储在目标范围内std::vectorint src {1, 2, 3, 4, 5}; std::vectorint dst(src.size()); std::adjacent_difference(src.begin(), src.end(), dst.begin()); // dst变为{1, 1, 1, 1, 1}7、其他7.1 generate用生成函数填充范围std::vectorint vec(5); int n 0; std::generate(vec.begin(), vec.end(), [n]() { return n; }); // 填充为0, 1, 2, 3, 47.2 generate_n用生成函数填充范围的开始n个元素std::vectorint vec(5); int n 10; std::generate_n(vec.begin(), 3, [n]() { return n; }); // 前三个元素为10, 11, 12后两个保持不变7.3 includes检查一个排序范围是否包含另一个排序范围的所有元素std::vectorint vec1 {1, 2, 3, 4, 5}; std::vectorint vec2 {2, 4}; bool includes std::includes(vec1.begin(), vec1.end(), vec2.begin(), vec2.end()); // true7.3 set_union, set_intersection, set_difference, set_symmetric_difference执行集合操作并集、交集、差集和对称差集std::vectorint v1 {1, 2, 3, 4, 5}; std::vectorint v2 {3, 4, 5, 6, 7}; std::vectorint result; // 并集 std::set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(result)); // result为{1, 2, 3, 4, 5, 6, 7} // 交集 result.clear(); std::set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(result)); // result为{3, 4, 5} // 差集 (v1 - v2) result.clear(); std::set_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(result)); // result为{1, 2} // 对称差集 (v1 ∪ v2 - v1 ∩ v2) result.clear(); std::set_symmetric_difference(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(result)); // result为{1, 2, 6, 7}8、常见问题sort与stable_sort的区别sort采用快速排序实际是 introsort 算法不稳定相等元素的相对位置可能改变平均时间复杂度 O (n log n)。stable_sort采用归并排序稳定相等元素相对位置不变时间复杂度 O (n log n)但空间开销略大。为什么remove算法需要配合erase使用remove算法的原理是 “覆盖” 要删除的元素将保留的元素移到前面返回新的逻辑尾迭代器但不修改容器的实际大小。erase则通过迭代器范围真正删除元素修改容器大小。因此需结合使用container.erase(remove(...), container.end())。哪些算法需要容器是已排序的二分查找系列binary_search、lower_bound、upper_bound、集合算法set_intersection、set_union等、merge等这些算法依赖有序性实现高效操作如二分查找 O (log n)。

相关文章:

C++编译期字符串加密

1、非修改序列算法这些算法不会改变它们所操作的容器中的元素。1.1 find 和 find_iffind(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第一个满…...

C语言100篇:从入门到天花板 第19篇 静态变量static:修饰变量与函数的核心作用

【独家】C语言100篇:从入门到天花板 第19篇 静态变量static:修饰变量与函数的核心作用 作者:华夏之光永存 前言 大家好,我是华夏之光永存,欢迎继续阅读 CSDN独家高质量专栏《C语言100篇:从入门到天花板》。 在C语言所有关键字里,static 是最具工程价值、最容易被新手…...

数据结构和算法之【递归】

目录 认识递归 递归的定义 利用递归实现几个小案例 链表的遍历 反转字符串 求N的阶乘 思路总结 多路递归 single recursion和multi recursion 斐波那契数列 递推公式 编码实现 代码优化 LeetCode-70题 题解 测试 认识递归 递归的定义 计算机科学中&#xff0…...

高考数学97分,我的“数学直觉“比140分更好用:指针:内存的门牌号系统

目录 一.序言 二.数学直觉 三.核心概念 1.基础核心概念 1. 1.指针的本质 1.2. 指针的两大核心操作 1.3. 指针的类型 2.进阶核心概念 2.1. 指针与数组的关系 2.2. 指针的运算 2. 3. 多级指针 3.应用核心概念 3.1. 指针作为函数参数 3.2. 动态内存分配 3.3. 函数指针 4.安…...

JAVA学习day01记录day01

为了未来能跟上AI的时代,只能老骥伏枥,重返学海。 那就从java基础班开始吧。今天学习涵了Java开发的基础搭建与入门实践。 很荣幸能成为黑马程序员的广州何波校长的学生,也很幸运能在他亲自上课的班级学习,何校长幽默,…...

全屋智能不被 “网” 住[特殊字符] Home Assistant+cpolar 解锁远程控家新体验

Home Assistant 是一款专注本地控制的智能家居管理平台,能整合米家、vivo、飞利浦等多品牌设备,通过可视化界面设置 “开门开灯”“离家关插座” 等自动化场景,无需编写代码,就能让不同品牌的智能设备实现联动,摆脱多个…...

修仙游戏:C++实现修真世界

以下是一个整合了修仙元素的C小游戏框架&#xff0c;包含功法系统、丹药炼制、境界突破和地图系统。代码超过300行&#xff0c;可直接编译运行&#xff1a;#include <iostream> #include <vector> #include <map> #include <string> #include <cstd…...

大数据实时计算:Flink+AI 融合实战

一、为什么需要 FlinkAI 融合&#xff1f; 在大数据实时计算场景中&#xff0c;传统的Flink作业往往只负责数据清洗、聚合、流转等标准化处理&#xff0c;但业务需求早已不满足于"计算出结果"&#xff0c;而是需要"从结果中产生智能决策"&#xff1a; 电…...

GeoDa 空间回归分析

GeoDa 空间回归分析 前置知识&#xff1a;[[GeoDa空间自相关分析]] 难度等级&#xff1a;⭐⭐⭐⭐⭐ 更新日期&#xff1a;2026-03-16 &#x1f4cb; 目录 1. 空间回归基础2. 空间滞后模型&#xff08;SLM&#xff09;3. 空间误差模型&#xff08;SEM&#xff09;4. 空间杜宾模…...

初探 MindSpore(一):PyTorch 用户先从哪里开始

初探 MindSpore&#xff08;一&#xff09;&#xff1a;先建立最基本的框架认识 对 PyTorch 用户来说&#xff0c;MindSpore 不是一套需要从头理解的框架&#xff0c;但也绝不是“把 API 名字改掉就能迁过去”的另一层皮。MindSpore 官方文档本身就是按这个思路组织的&#xff…...

OpenClaw 安全公告激增暴露 GitHub 与 CVE 漏洞跟踪体系间的鸿沟

自托管AI Agent项目OpenClaw在发布数周后便成为GitHub星标最多的代码库,吸引了大量开发者社区和研究人员关注。但没人预料到,其快速增长很快成为全球漏洞跟踪体系的意外压力测试。 安全公告爆发式增长 2月下旬,该项目开始以开源项目罕见的速度发布安全公告,迅速暴露出两大…...

申论素材资源合集

26行政执法专项资料 文件大小: 31.8GB内容特色: 31.8GB行政执法专项资料&#xff0c;覆盖法规、案例与高频考点适用人群: 备考公务员行政执法岗、法检书记员、执法勤务辅警核心价值: 一站式掌握执法依据、程序与高频考题&#xff0c;快速提升应试能力下载链接: https://pan.qu…...

openclaw运维

这里写目录标题常用命令配置管理更新管理斜杠命令常用命令 #### Gateway 管理 # 启动 Gateway openclaw gateway# 启动并显示详细日志 openclaw gateway --verbose# 指定端口启动 openclaw gateway --port 18789配置管理 # 运行配置向导 openclaw onboard# 系统健康检查 open…...

[连载] C++ 零基础入门-5.C++ if else 条件判断(小白必看)

【C 零基础入门】第5篇&#xff1a;if else 条件判断&#xff08;小白必看&#xff09; 作者&#xff1a;咏方舟-长江支流 | 日期&#xff1a;2026-03-16 ✅ 标准C跨平台说明 本系列免费&#xff0c;敬请关注&#xff01;所有代码均采用标准C&#xff0c;不依赖任何平台…...

Gemini 3 flash架构深度拆解:从稀疏MoE到原生多模态的工程实现

Gemini 3 Pro是谷歌于2025年11月发布的旗舰级大语言模型&#xff0c;其技术内核远非“参数更大”所能概括——稀疏专家混合&#xff08;MoE&#xff09;架构、原生多模态统一语义空间、可配置思考深度与思维签名机制&#xff0c;共同构成了其性能跃迁的底层逻辑。国内技术爱好者…...

PD协议物理层深度解析:SOP在充电中的关键作用

近日&#xff0c;有大师级人物成功完成了PD快充的Only Source端软件开发&#xff0c;这一庞大工程目前展现出良好的兼容性&#xff0c;经过测试的笔记本和手机均无异常。 在技术细节上&#xff0c;他采用了ZR的SW3526 buck芯片、安森美的FUSB302物理层芯片&#xff0c;并辅以ST…...

Camera ISP 之 镜头阴影矫正(lens_shading_correction)

1、Lens Shading Lens Shading指画面四角由于入射光线不足形成暗角&#xff0c;同时由于不同频率的光折射率不同&#xff0c;导致Color Shading&#xff0c;因此需要进行镜头阴影矫正&#xff08;Lens Shading Correction) 。 Lens shading分为两种 luma shading和color shadi…...

一区级光伏功率预测创新模型!CEEMDAN-KPCA-PINN多变量时序预测!完全自适应噪声集合经验模态分解+核主成份降维+物理信息神经网络

SCI配图创新模型&#xff01;完全自适应噪声集合经验模态分解核主成份降维物理信息神经网络&#xff01;CEEMDAN-KPCA-PINN多变量时序光伏功率预测&#xff0c;MATLAB代码。以下是对代码的全面分析&#xff1a; 一、主要功能 该代码用于光伏功率时间序列预测&#xff0c;结合了…...

在 CentOS Stream 9 上部署 OpenClaw(小龙虾)

在 CentOS Stream 9 上部署 OpenClaw&#xff08;小龙虾&#xff09; 注意&#xff1a;本人使用的普通用户安装 环境准备 # 1. 更新系统 sudo dnf update -y# 2. 安装基础工具 sudo dnf install -y gcc-c make cmake git curl wget vim执行官方安装脚本 脚本会自动安装 Node.js…...

C# 语言测验

C# 语言测验 引言 C#(读作“C sharp”)是一种由微软开发的高级编程语言,它旨在提供跨平台的开发能力,并广泛应用于桌面应用、移动应用、Web应用以及云服务等领域。为了帮助读者更好地理解和掌握C#语言,本文将提供一份全面的C#语言测验,旨在检验读者对C#基础知识的掌握程…...

迅雷怎么加快下载速度_现在迅雷下载怎么这么慢

迅雷限速怎么破解这个很简单&#xff0c;这个方法我还是在我朋友那里找到的。下载速度也是非常可以的。我让大家看一下。点我打开方法 这个就是我测试的速度。速度基本能跑到10M左右。宽带问题。下面开始今天的教学环节 打开上面图片中的地址&#xff0c;你会看到一个获取文件列…...

前端面试基础知识整理【Day-11】

前言 前端面试基础知识整理【Day-1】-CSDN博客 前端面试基础知识整理【Day-2】-CSDN博客 前端面试基础知识整理【Day-3】-CSDN博客 前端面试基础知识整理【Day-4】-CSDN博客 前端面试基础知识整理【Day-5】-CSDN博客 前端面试基础知识整理【Day-6】-CSDN博客 前端面试基…...

前端实现网页转PDF矢量文件,高清还原网页内容

前端&#xff1a;Vue3 后端&#xff1a;Node.js Express 接口 核心 PDF 引擎&#xff1a;Puppeteer&#xff08;谷歌 Chrome 官方无头浏览器&#xff09; 中文 100% 不乱码 图片 100% 显示 样式 1:1 还原 A4 自动分页&#xff0c;完美排版 文字可选中&#xff0c;矢量高清 ✅ …...

网络安全的进一步学习

了解基础网安知识分析第三方应用&#xff0c;进一步了解向日葵低版本被利用的条件&#xff0c;和木马能隐藏的原因&#xff08;通过计划任务定时运行实现持久化的运行&#xff09;和发现异常登录的记录并进行排查。...

JavaScript性能优化实战烈嘿

JavaScript性能优化实战技术文章大纲 性能优化的核心原则 减少代码执行时间 降低内存占用 优化网络请求 提升用户体验 代码层面的优化 避免全局变量污染&#xff0c;使用模块化或闭包 减少DOM操作&#xff0c;批量更新或使用文档片段 使用事件委托减少事件监听器数量 优化循环结…...

木马的排除与防护

作为学习者&#xff0c;我仅将所学知识进行系统梳理和总结。如有任何疏漏或错误&#xff0c;敬请指正进程、服务、启动项、计划任务的定义进程&#xff1a;操作系统中程序的一次执行实例&#xff0c;是资源分配和调度的基本单位。 服务&#xff1a;在后台运行的程序&#xff0c…...

我用 OpenClaw 7 天,砍掉了 80% 的重复沟通

我用 OpenClaw 7 天&#xff0c;砍掉了 80% 的重复沟通 很多人第一次接触 AI 助手&#xff0c;期待的是“无所不能”。 但真正把 AI 用起来之后&#xff0c;你会发现&#xff0c;最先产生价值的不是那些酷炫能力&#xff0c;而是那些你早就烦透了、却每天都还得做的重复工作。 …...

IDEA各版本支持的Java 版本和功能

https://www.jetbrains.com.cn/help/idea/supported-java-versions.html...

2.【.NET10 实战--孢子记账--产品智能化】--升级前的准备工作:项目依赖梳理与升级计划制定

我们在日常产品维护时&#xff0c;往往会遇到底层基础框架需要升级的情况&#xff0c;尤其是当底层框架升级到一个新的大版本时&#xff0c;可能会带来一些不兼容的变更&#xff0c;这时候我们就需要做好充分的准备工作&#xff0c;以确保升级过程顺利进行。从本文开始&#xf…...

064远程教育网站系统-springboot+vue

文末领取项目源码springbootvue 1.登录2.注册3.首页请文末卡片dd我获取源码...