C++编程:常见内置算法
C++中算法主要是由头文件<algorithm><functional><numeric>组成。
<algorithm>是所有STL头文件中最大的一个算法头文件,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等。
<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数<functiona1>定义了一些模板类,用以声明函数对象。
1 遍历算法
1.1 for_each
函数原型:
- for_each(iterator beg,iterator end,_func);
- // 遍历算法 遍历容器元素
- // beg 开始迭代器
- // end 结束迭代器
- //_func 函数或者函数对象
代码如下:
#include <iostream>
using namespace std;
#include<algorithm>
#include<vector>//_func普通函数
void print01(int val)
{cout<<val<<" ";
}//_func仿函数
class print02
{
public:void operator()(int val){cout<<val<<" ";}
};//for_each
void test01()
{vector<int> v;for(int i=0;i<10;i++){v.push_back(i);}for_each(v.begin(),v.end(),print01);//普通函数放函数名cout<<endl;for_each(v.begin(),v.end(),print02());//仿函数放函数对象cout<<endl;
}int main()
{test01();return 0 ;
}
输出如下:
1.2 transfom
功能:搬运容器中的内容到另一个容器中
函数原型:
transform(iterator beg1,iterator end1,iterator beg2,_func);
//beg1 源容器开始迭代器
//end1 源容器结束迭代器
//beg2 目标容器开始迭代器
// _func 函数或者函数对象
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>class Transform
{
public:int operator()(int v){return v;}
};class MyPrint
{
public:void operator()(int val){cout<<val<<' ';}
};void test01()
{vector<int> v1;for(int i=0;i<10;i++){v1.push_back(i);}vector<int> v2;v2.resize(v1.size());//目标容器需要提前开辟空间transform(v1.begin(),v1.end(),v2.begin(),Transform());for_each(v2.begin(),v2.end(),MyPrint());cout<<endl;
}int main()
{test01();return 0;
}
输出如下:
错误示例:目标容器未提前开辟空间
2 查找算法
2.1 find
功能:查找元素,找到返回指定元素的迭代器,找不到返回结束迭代器end()
函数原型:
find(iterator beg,iterator end, value);
// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置
// beg 开始迭代器
// end 结束迭代器
// value 查找的元素
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<string>//查找内置数据类型
void test01()
{vector<int> v;for(int i=0;i<10;i++){v.push_back(i);}vector<int>::iterator it=find(v.begin(),v.end(),4);if(it==v.end()){cout<<"none"<<endl;}else{cout<<"find: "<<*it<<endl;}vector<int>::iterator it2=find(v.begin(),v.end(),44);if(it2==v.end()){cout<<"none"<<endl;}else{cout<<"find: "<<*it2<<endl;}
}//查找自定义数据类型
class Person
{
public:Person(string name,int age){this->m_Name=name;this->m_Age=age;}//重载==bool operator==(const Person &p){if(this->m_Name==p.m_Name && this->m_Age==p.m_Age){return true;}else{return false;}}string m_Name;int m_Age;
};
void test02()
{vector<Person> v;Person p1("aaa",22);Person p2("bbb",25);Person p3("ccc",14);Person p4("ddd",24);v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);Person pp("ddd",24);vector<Person>::iterator it=find(v.begin(),v.end(),pp);if(it==v.end()){cout<<"none"<<endl;}else{cout<<"find name: "<<(*it).m_Name<<" age:"<<(*it).m_Age<<endl;}
}int main()
{test01();test02();return 0;
}
输出如下:
2.2 find_if
功能:按条件查找元素
函数原型:
find_if(iterator beg, iterator end,_Pred);
// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置
// beg 开始迭代器
// end 结束迭代器
//_Pred 函数或者谓词(返回bool类型的仿函数)
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<string>//查找内置数据类型
class GreaterFive
{
public:bool operator()(int val){return val>5;}
};
void test01()
{vector<int> v;for(int i=0;i<10;i++){v.push_back(i);}vector<int>::iterator it=find_if(v.begin(),v.end(),GreaterFive());if(it==v.end()){cout<<"none"<<endl;}else{cout<<"find: "<<*it<<endl;}
}//查找自定义数据类型
class Person
{
public:Person(string name,int age){this->m_Name=name;this->m_Age=age;}//重载==bool operator==(const Person &p){if(this->m_Name==p.m_Name && this->m_Age==p.m_Age){return true;}else{return false;}}string m_Name;int m_Age;
};
class Greater20
{
public:bool operator()(Person & p){return p.m_Age>20;}
};
void test02()
{vector<Person> v;Person p1("aaa",22);Person p2("bbb",25);Person p3("ccc",14);Person p4("ddd",24);v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);vector<Person>::iterator it=find_if(v.begin(),v.end(),Greater20());if(it==v.end()){cout<<"none"<<endl;}else{cout<<"find name: "<<(*it).m_Name<<" age:"<<(*it).m_Age<<endl;}
}int main()
{test01();test02();return 0;
}
输出 如下:
2.3 adjacent_find
功能:查找相邻重复元素
函数原型:
adjacent_find(iterator beg, iterator end);
// 查找相邻重复元素,返回相邻元素的第一个位置的迭代器
// beg 开始迭代器
// end 结束迭代器
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<string>//查找内置数据类型void test01()
{vector<int> v;v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(2);v.push_back(1);v.push_back(7);v.push_back(5);vector<int>::iterator it=adjacent_find(v.begin(),v.end());if(it==v.end()){cout<<"none"<<endl;}else{cout<<"find: "<<*it<<endl;}vector<int> v2;v2.push_back(2);v2.push_back(3);v2.push_back(4);v2.push_back(4);v2.push_back(1);v2.push_back(7);v2.push_back(5);vector<int>::iterator it2=adjacent_find(v2.begin(),v2.end());if(it2==v2.end()){cout<<"none"<<endl;}else{cout<<"find: "<<*it2<<endl;}
}int main()
{test01();return 0;
}
输出如下:
2.4 binary_search
功能:二分查找法
函数原型:
bool binary_search(iterator beg,iterator end, value);
// 查找指定的元素,查到返回true 否则false
// 注意: 在无序序列中不可用
// beg 开始迭代器
// end 结束迭代器
// value 查找的元素
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>void test01()
{vector<int> v;for(int i=0;i<10;i++){v.push_back(i);}bool ret=binary_search(v.begin(),v.end(),4);if(ret){cout<<"find it!"<<endl;}else{cout<<"none"<<endl;}v.push_back(7);//插入新元素后是一个无序序列,用binary_search查找结果不准确bool ret2=binary_search(v.begin(),v.end(),9);if(ret2){cout<<"find it!"<<endl;}else{cout<<"none"<<endl;}
}int main()
{test01();return 0;
}
输出如下:
2.5 count
功能:统计元素个数
函数原型:
count(iterator beg,iterator end,value);
// 统计元素出现次数
// beg 开始迭代器
// end 结束迭代器
// value 统计的元素
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<string>//统计内置数据类型
void test01()
{vector<int> v;v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(2);v.push_back(1);v.push_back(7);v.push_back(5);int num=count(v.begin(),v.end(),2);cout<<"number of 2: "<<num<<endl;}class Person
{
public:Person(string name,int age){this->m_Name=name;this->m_Age=age;}bool operator==(const Person & p){if(this->m_Age==p.m_Age){return true;}else{return false;}}string m_Name;int m_Age;
};//统计自定义数据类型(需要重载==)
void test02()
{vector<Person> v;Person p1("aaa",23);Person p2("bbb",34);Person p3("ccc",52);Person p4("ddd",14);v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);Person p("addf",23);int num=count(v.begin(),v.end(),p);cout<<"number of same age as p: "<<num<<endl;}int main()
{test01();test02();return 0;
}
输出如下:
2.6 count_if
功能:按条件统计元素个数
函数原型:
count_if(iteratdr beg, iterator end,_Pred);// 按条件统计元素出现次数
// beg 开始迭代器
// end 结束迭代器
// _Pred 谓词
代码如下:
#include<iostream>
using namespace std;
#include<algorithm>
#include<vector>
#include<string>//统计内置数据类型class GreaterFive
{
public:bool operator()(int val){return val>5;}
};
void test01()
{vector<int> v;v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(2);v.push_back(1);v.push_back(7);v.push_back(5);int num=count_if(v.begin(),v.end(),GreaterFive());cout<<"number of >5: "<<num<<endl;}class Person
{
public:Person(string name,int age){this->m_Name=name;this->m_Age=age;}bool operator==(const Person & p){if(this->m_Age==p.m_Age){return true;}else{return false;}}string m_Name;int m_Age;
};class Greater15
{
public:bool operator()(Person &p){return p.m_Age>15;}
};void test02()
{vector<Person> v;Person p1("aaa",23);Person p2("bbb",34);Person p3("ccc",52);Person p4("ddd",14);v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);Person p("addf",23);int num=count_if(v.begin(),v.end(),Greater15());cout<<"number of age>15: "<<num<<endl;}int main()
{test01();test02();return 0;
}
输出如下:
3 排序算法
3.1 sort
3.2 random_shuffle
3.3 merge
3.4 reverse
4 拷贝和替换算法
4.1 copy
4.2 replace
4.3 replace_if
4.4 swap
5 算术生成算法
5.1 accumulate
5.2 fill
6 集合算法
6.1 set_intersection
6.2 set_union
6.3 set_difference
相关文章:
C++编程:常见内置算法
C中算法主要是由头文件<algorithm><functional><numeric>组成。 <algorithm>是所有STL头文件中最大的一个算法头文件,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等。 <numeric>体积很小,只包括几个在序列上面…...
【开源-开源C++框架boost和poco的对比】
从各个维度对 Boost 和 Poco 进行对比分析 Boost 和 Poco 的对比 1. 核心定位 Boost: 定位: 高性能、通用性、标准化。特点: 提供底层、高度灵活的模块,许多库已被纳入 C 标准。适用场景: 需要高性能、精细控制的场景(如游戏开发、高频交易、科学计算&a…...
【Web安全方向编程语言学习顺序推荐】
Web安全方向编程语言学习顺序推荐 1. HTML/CSS/JavaScript(基础层)2. Python(工具与自动化层)3. SQL(数据库交互层)4. PHP(传统Web漏洞研究层)5. Ruby(红队工具链层&…...
h5 IOS端渐变的兼容问题 渐变实现弧形效果
IOS端使用渐变的时候有兼容问题 以下是问题效果,图中黑色部分期望的效果应该是白色的。但是ios端是下面的样子…… 安卓pc 支持: background-image: radial-gradient(circle 40rpx at 100% 0, #f3630c 40rpx, rgb(255, 255, 255) 50%);安卓pc ios支持…...
【朝夕教育】《鸿蒙原生应用开发从零基础到多实战》004-TypeScript 中的泛型
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…...
【SQL】MySQL中的字符串处理函数:concat 函数拼接字符串,COALESCE函数处理NULL字符串
MySQL中的字符串处理函数:concat 函数 一、concat ()函数 1.1、基本语法1.2、示例1.3、特殊用途 二、COALESCE()函数 2.1、基本语法2.2、示例2.3、用途 三、进阶练习 3.1 条件和 SQL 语句3.2、解释 一、concat &…...
doris:Paimon Catalog
使用须知 数据放在 hdfs 时,需要将 core-site.xml,hdfs-site.xml 和 hive-site.xml 放到 FE 和 BE 的 conf 目录下。优先读取 conf 目录下的 hadoop 配置文件,再读取环境变量 HADOOP_CONF_DIR 的相关配置文件。当前适配的 Paimon 版本为 0…...
批量提取 Word 文档中的图片
在 Word 文档中,我们可以插入图片、文本、链接等各种各样的资源。在某些场景下我们需要提取这些信息,比如我们需要提取 Word 文档中的图片,将每一个 Word 文档中的图片都提取出来放到一个单独的文件夹中,那么我们应该怎么做呢&…...
Redis 的几个热点知识
前言 Redis 是一款内存级的数据库,凭借其卓越的性能,几乎成为每位开发者的标配工具。 虽然 Redis 包含大量需要掌握的知识,但其中的热点知识并不多。今天,『知行』就和大家分享一些 Redis 中的热点知识。 Redis 数据结构 Redis…...
QT5 GPU使用
一、问题1 1、现象 2、原因分析 出现上图错误,无法创建EGL表面,错误=0x300b。申请不上native window有可能是缺少libqeglfs-mali-integration.so 这个库 3、解决方法 需要将其adb push 到小机端的/usr/lib/qt5/plugins/egldeviceintegrati…...
【分享】网间数据摆渡系统,如何打破传输瓶颈,实现安全流转?
在数字化浪潮中,企业对数据安全愈发重视,网络隔离成为保护核心数据的重要手段。内外网隔离、办公网与研发网隔离等措施,虽为数据筑牢了防线,却也给数据传输带来了诸多难题。传统的数据传输方式在安全性、效率、管理等方面暴露出明…...
sql-labs less5-8
Less-5 双注入 基于单引号的字符型注入,涉及二次查询注入 Less-6 双注入 基于双引号的字符型注入,涉及二次查询注入 Less-7 字符型注入 基于单引号变形注入之导入文件 Less-8 布尔盲注 不返回任何错误信息,通过布尔逻辑判断 以下…...
iOS开发之最新Demo上传Github步骤(2025.02.28)
前几年的两篇文章: 将项目Demo上传到Github上的操作步骤 常用知识之将Demo上传到Github上的操作步骤(2021.09) 新的操作步骤,需要将两篇文章结合进行,从而达到最终的结果。 一、最新操作步骤: 1、先按…...
注意力机制详解笔记 Attention is all I donot understand!
注意力机制好奇了太久,QKV知道是什么但是一直没搞懂为什么,这段时间终于眼一闭心一横摁头看了一天视频,3B1B大佬太强了!基于GPT看了三个视频,基本讲的toy model,没有讲“硬核”的如何训练和码代码ÿ…...
分布式锁—2.Redisson的可重入锁二
大纲 1.Redisson可重入锁RedissonLock概述 2.可重入锁源码之创建RedissonClient实例 3.可重入锁源码之lua脚本加锁逻辑 4.可重入锁源码之WatchDog维持加锁逻辑 5.可重入锁源码之可重入加锁逻辑 6.可重入锁源码之锁的互斥阻塞逻辑 7.可重入锁源码之释放锁逻辑 8.可重入锁…...
Ribbon实现原理
文章目录 概要什么是Ribbon客户端负载均衡 RestTemplate核心方法GET 请求getForEntitygetForObject POST 请求postForEntitypostForObjectpostForLocation PUT请求DELETE请求 源码分析类图关系 与Eureka结合重试机制 概要 什么是Ribbon Spring Cloud Ribbon是一个基于HTTP和T…...
游戏引擎学习第133天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并设定今天的主题 今天的任务是进一步优化背景资源的流式加载,尤其是在内存管理方面。昨天,我们实现了资源流式加载,让游戏在加载时可以动态地加载背景,而不是一开始就把所有资…...
DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!
今天跟大家分享下我们如何将DeepSeek生成的VBA代码,做成按钮,将其永久保存在我们的Excel表格中,下次遇到类似的问题,直接在Excel中点击按钮,就能10秒搞定,操作也非常的简单. 一、代码准备 代码可以直接询问…...
deepseek+mermaid【自动生成流程图】
成果: 第一步打开deepseek官网(或百度版(更快一点)): 百度AI搜索 - 办公学习一站解决 第二步,生成对应的Mermaid流程图: 丢给deepseek代码,或题目要求 生成mermaid代码 第三步将代码复制到me…...
递归遍历目录 和 普通文件的复制 [Java EE]
递归遍历目录 首先 先列出当前目录所包含的内容 File[] files currentDir.listFiles();if (files null || files.length 0) {// 若是空目录或非法目录, 则直接返回return;} 然后 遍历列出的文件, 分情况两种讨论 for (File f: files) {// 加个日志, 方便查看程序执行情…...
安防监控/视频集中存储EasyCVR视频汇聚平台如何配置AI智能分析平台的接入?
EasyCVR安防视频监控平台不仅支持AI边缘计算智能硬件设备的接入,还能快速集成AI智能分析平台,接收来自智能分析平台或设备的AI告警信息,如烟火检测、周界入侵检测、危险区域闯入检测、安全帽/反光衣佩戴检测等。 本文将详细介绍如何在EasyCVR…...
React 之 Redux 第二十八节 学习目标与规划大纲及概要讲述
接下来 开始Redux 全面详细的文档输出,主要基于一下几个方面,欢迎大家补充指正 一、Redux 基础概念 为什么需要 Redux? 前端状态管理的挑战(组件间通信、状态共享) Redux 解决的问题:集中式、可预测的状态…...
五分钟快速学习优秀网站的HTML骨架布局设计
一.编写多级过滤脚本,在控制台执行copy方法进行提取: 过滤脚本脚本 // 在浏览器F12的控制台里,直接执行以下脚本 copy(document.documentElement.outerHTML// 一级过滤:移除动态内容.replace(/<script\b[^>]*>[\s\S]*?…...
神经网络AI原理回顾
长期记忆存储在大模型的参数权重中,不经过推理和编码无法读取,且必须依赖输入的提示,因为大模型不会无缘无故的自言自语,毕竟输入层是它唯一 与外界交互的窗口。 目前个性化大模型的局限就是训练成本过高,除非使用RAG&…...
常见webshell工具的流量特征
1、蚁剑 1.1、蚁剑webshell静态特征 蚁剑中php使用assert、eval执行;asp只有eval执行;在jsp使用的是Java类加载(ClassLoader),同时会带有base64编码解码等字符特征。 1.2、蚁剑webshell动态特征 查看流量分析会发现…...
探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(一)
文章目录 2.3 Polar 编解码2.3.1 Polar 码简介与发展背景2.3.2 信道极化理论基础对称容量与巴氏参数对称容量 I ( W ) I(W) I(W)巴氏参数 Z ( W ) Z(W) Z(W)常见信道信道联合信道分裂信道极化 本博客为系列博客,主要讲解各基带算法的原理与应用,包括&…...
【计算机网络】考研复试高频知识点总结
文章目录 一、基础概念1、计算机⽹络的定义2、计算机⽹络的目标3、计算机⽹络的组成4、计算机⽹络的分类5、计算机⽹络的拓扑结构6、计算机⽹络的协议7、计算机⽹络的分层结构8、OSI 参考模型9、TCP/IP 参考模型10、五层协议体系结构 二、物理层1、物理层的功能2、传输媒体3、 …...
nio多线程版本
多线程多路复用 多线程NIO,,就是多个线程,每个线程上都有一个Selector,,,比如说一个系统中一个线程用来接收请求,,剩余的线程用来读写数据,,每个线程独立干自…...
Lua | 每日一练 (5)
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Lua | 每日一练 (5)题目参考答案浅拷贝深拷贝使用场景…...
IO的概念和标准IO函数
作业: 1.使用标准IO函数,实现文件的拷贝 #include <stdio.h>int main(int argc, char *argv[]) {// 检查是否提供了源文件和目标文件if (argc ! 3) {printf("Usage: %s <source_file> <destination_file>\n", argv[0]);re…...
影刀RPA开发拓展--SQL常用语句全攻略
前言 SQL(结构化查询语言)是数据库管理和操作的核心工具,无论是初学者还是经验丰富的数据库管理员,掌握常用的 SQL 语句对于高效管理和查询数据都至关重要。本文将系统性地介绍最常用的 SQL 语句,并为每个语句提供详细…...
零信任架构和传统网络安全模式的
零信任到底是一个什么类型的模型?什么类型的思想或思路,它是如何实现的,我们要做零信任,需要考虑哪些问题? 零信任最早是约翰金德瓦格提出的安全模型。早期这个模型也是因为在安全研究上考虑的一个新的信任式模型。他最…...
【前端】HTML 备忘清单(超级详细!)
文章目录 入门hello.html注释 Comment段落 ParagraphHTML 链接Image 标签文本格式标签标题Section Divisions内部框架HTML 中的 JavaScriptHTML 中的 CSS HTML5 标签页面标题导航HTML5 TagsHTML5 VideoHTML5 AudioHTML5 RubyHTML5 kdiHTML5 progressHTML5 mark HTML 表格Table …...
React 中 useState 的 基础使用
概念:useState 是一个React Hook(函数),它允许我们向组件添加状态变量,从而影响组件的渲染结果。 本质:和普通JS变量不同的是,状态变量一旦发生变化,组件的视图UI也会跟着变化&…...
蓝桥杯单片机组第十二届省赛第二批次
前言 第十二届省赛涉及知识点:NE555频率数据读取,NE555频率转换周期,PCF8591同时测量光敏电阻和电位器的电压、按键长短按判断。 本试题涉及模块较少,题目不难,基本上准备充分的都能完整的实现每一个功能,并…...
React Native 原理
React Native 是一个跨平台移动应用开发框架,它允许开发者使用 JavaScript 和 React 来开发 iOS 和 Android 原生应用。React Native 的核心原理是通过 桥接(Bridge) 技术,使用 JavaScript 来控制原生组件,并将应用逻辑…...
C++简易贪食蛇项目
一.案例介绍 二.制作思路 三.墙模块 #include "wall.h" //初始化墙 void initWall() { for (int i 0; i < HEIGHT; i) { for (int j 0; j < WIDTH;j) { if (i 0 || j 0 || i HEIGHT - 1 || j WIDTH - 1) …...
C++蓝桥杯基础篇(七)
片头 嗨~小伙伴们,大家好!今天我们来一起学习蓝桥杯基础篇(七),学习相关字符串的知识,准备好了吗?咱们开始咯! 一、字符与整数的联系——ASCII码 每个常用字符都对应一个-128~127的…...
Sass基础
目录 什么是sass? Sass的安装 Sass的编译 Sass的语法: Sass的基本使用: 一、Sass变量: 二、嵌套语法: 三、import的使用: 四、mixin混入和include: 五、extend: 六、注释 七、if和if: 八、for: 总结: 什么是sas…...
Linux文档编辑相关命令详解
Linux文档编辑相关命令 1. grep grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。 1.1 语法 grep [options] pattern [files] 1.2 常用选项 -i:忽略大小写进行匹配。-v:反向查找,只打印不匹配的行。-…...
QT实现简约美观的动画Checkbox
*最终效果: * 一共三个文件: main.cpp , FancyCheckbox.h , FancyCheckbox.cpp main.cpp #include <QApplication> #include "FancyCheckbox.h" #include <QGridLayout> int main(int argc, char *argv[]) {QApplication a(argc, argv);QWidget* w new…...
每日学习Java之一万个为什么?[MySQL面试篇]
分析SQL语句执行流程中遇到的问题 前言1 MySQL是怎么在一台服务器上启动的2 MySQL主库和从库是同时启动保持Alive的吗?3 如果不是主从怎么在启动的时候保证数据一致性4 ACID原则在MySQL上的体现5 数据在MySQL是通过什么DTO实现的6 客户端怎么与MySQL Server建立连接…...
git笔记
定义:分布式版本控制工具,免费开源的,快速高效的处理从小到大的项目,git占地面积小,性能快,有廉价的本地库 安装:官网最新版 全部点下一步就行 版本控制工具:使用中央服务器&#…...
Full GC 排查
在 Java 中,Full GC(完全垃圾回收)会对整个堆(包括年轻代和老年代,甚至可能包括永久代/元空间)进行垃圾回收,通常会导致较长的停顿(STW,Stop-The-World)。如果…...
VS2022远程调试Ubuntu中的C++程序
前言 最近想基于星火大模型的SDK开发第一些应用。但是,发现星火的SDK当中Linux版本的比较丰富,Windows 版本支持的比较少。但是,从调试的IDE而言,Visual Studio又是最方便的。所以,考虑采用Visual Studio Ubuntu的形式…...
Flutter 学习之旅 之 flutter 使用 flutter_screenutil 简单进行屏幕适配
Flutter 学习之旅 之 flutter 使用 flutter_screenutil 简单进行屏幕适配 目录 Flutter 学习之旅 之 flutter 使用 flutter_screenutil 简单进行屏幕适配 一、简单介绍 二、简单介绍 flutter_screenutil 三、安装 carousel_slider 四、简单案例实现 五、关键代码 六、补…...
【华为OD机考】华为OD笔试真题解析(16)--微服务的集成测试
题目描述 现在有n个容器服务,服务的启动可能有一定的依赖性(有些服务启动没有依赖),其次,服务自身启动加载会消耗一些时间。 给你一个 n n n \times n nn的二维矩阵useTime,其中useTime[i][i]10表示服务…...
NCCL AI 分布式训练集合通讯库技术基本原理
目录 文章目录 目录AI 分布式训练NCCL 的简介NCCL 的核心功能NCCL 的基本工作流程NCCL 的集合通信操作方式NCCL 的 API 编程示例 AI 分布式训练 在一个最初的 AI 模型训练场景中,由于模型自身的程序体积、输入的参数量以及样本的数据量都比较有限,一张 …...
算法-回溯篇01-组合
组合 力扣题目链接 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 解题思路 刚开始做回溯的题目,关于回溯的相关知识推荐大家去看代码随想录的视频。 做了几道题,感觉回溯题…...
泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全
在城市化进程加速的今天,燃气泄漏、地下管网老化等问题时刻威胁着城市安全。如何实现精准、高效的可燃气体监测,守护“城市生命线”,成为新型基础设施建设的核心课题。泵吸式激光可燃气体监测仪,以创新科技赋能安全监测࿰…...