C++中的STL
STL(标准模板库)在广义上分为:容器,算法,迭代器
容器和算法之间通过迭代器进行无缝衔接
STL大体上分为六大组件:分别为容器,算法,迭代器,仿函数,适配器,空间配置器
- 容器:各种数据结构
- 算法:各种常用的算法
- 迭代器:扮演了容器和算法间的桥梁
- 仿函数:行为类似函数
- 适配器:修饰容器或者仿函数或者迭代器接口的东西
- 空间配置器:负责空间的配置和管理
1.实例
头文件:#include<vector>
容器:vector : 语法:vector<数据类型> 容器名;
方法:插入数据:容器名.push_back(数据);
迭代器:
vector<int>::iterator itBegin = v.begin();//定义起始迭代器,指向容器的第一个位置
vector<int>::iterator itEnd = v.end(); //结束迭代器,指向容器最后一个元素的下一个位置
2.string容器
string是一个类,类内部封装了char*,并且封装了多个成员方法
构造函数
- string():构造一个空的字符串 如:string str;
- string(const char *s):使用字符串s来初始化·
- string(const string &str)使用另一个string来初始化这个string对象
- string(int n,char c)使用n个c来初始化对象
赋值操作
方法1
void test01()
{string str1;str1 = "hello world"
}方法2
void test01()
{string str2;str2 = str1;
}方法3
void test01()
{string str3;str3 = 'a';
}方法4
void test01()
{string str4;str4.assgin("hello world");
}方法5
void test01()
{string str5;str5.assgin("hello world",5);
}方法6
void test01()
{string str6;str6.assgin(str5);
}方法7
void test01()
{string str7;str7.assgin(5,'x');
}
字符串拼接
void text01()
{string str1 = "wjm";str1 += "041006";
}void text01()
{string str2 = "wjm04100";str1 += '6';
}void text01()
{string str3 = "041006";str1 += str3;
}剩下的使用append进行追加不具例子
和上面使用assgin进行赋值操作相差不大
查找与替换
查找
void test01()
{string str1 = "wjm041006";str1.find("04");//返回从零开始计数的初始位置,没有的话返回 -1
}rfind同find的区别rfind从右向左查找
find从左向右查找替换操作
void test01()
{string str1 = "wjm041006";str1.replace(0,2,"wwww");
}//这个的输出结果为wwww041006
字符串比较
= 返回0
> 返回1
< 返回 -1
void test01()
{string str1 = "hello";string str2 = "hello";cout << str1.compare(str2) << endl;
}//输出0;
//介绍一下字符串比较规则
//从第一个字符开始向后比较,如果两个字符对应位置相等,继续向后比较
//如果不相等,那么根据ascll值进行比较
string字符的存取
上面的方法同数组类似
下面的通过at方法
void test01()
{string str1 = "wjm041006"cout<<str1.at(0)<<endl;
}//输出w
插入与删除
void test01()
{string str = "wjm041006";str.insert(1,"www");str.erase(1,3);
}//输出结果为wjm041006
子串获取
函数原型
string substr(int pos = 0,int n = npos)const;
void test01()
{string str = "wjm041006";string substr = str.substr(0,2);cout<<substr<<endl;
}//输出结果为wjm
3.vector容器
vector数据结构和数组非常类似,也称为单端数组
不同之处在于vector可以动态扩展
其动态扩展并不是在原空间之后续接新空间,而是寻找更大的内存空间进行拷贝,随后释放原空间
构造函数
void test01()
{vector<int> v1;vector<int> v2(v1.begin(),v1.end());vector<int> v3(10,100);//前面表示个数,后面表示值vector<int> v4(v3);
}
赋值操作
void test01()
{vector<int> v1;for(int i=0;i<10;i++) v1.push_back(i);vector<int> v2;v2 = v1;vector<int>v3;v3.assgin(v1.begin(),v1.end());vector<int> v4;v4.assgin(10,100);
}
容量和大小
void test01()
{vector<int> v1;for(int i=0;i<10;i++) v1.push_back(i);if(v1.empty()) cout<<"v1为空"<<endl;cout<<"v1的容量"<<v1.capacity()<<endl;cout<<"v1的大小"<<v1.size()<<endl;v1.resize(15);cout<<"v1的大小"<<v1.size()<<endl;//默认以0填充新的位置
}
插入和删除
void test01()
{vector<int> v1;for(int i=0;i<10;i++) v1.push_back(i);v1.pop_back();//删除尾部元素v1.insert(v1.begin(),100);//第一个参数为迭代器,第二个为数值v1.erase(v1.begin());//删除迭代器位置元素v1.clear();
}
note:vector insert方法使用的为迭代器,string为位置
数据存取
vector的数据存取同string类似
互换容器swap
功能为实现两个容器内元素进行互换
代码非常简单 v1.swap(v2);
当重新指定容器大小的时候,可能由于之前使用的容量大造成容量浪费
使用
vector<int> (v1).swap(v1);
可以重新分配容量
预留空间
减少vector在动态容量扩展中的次数
v.reserve(int len); //容器预留len个元素长度,预留位置不初始化,元素不可访问
deque容器
双端数组,可以进行头部的插入和删除操作
为什么deque可以进行双端插入呢?
在于其内部存在一个中控器,存放各个缓冲区的地址,然后缓冲区存放真实数据,这样使得deque看起来像连续的内存空间,但其访问速度要相对vector慢上一些,原因在于其要先找到对应缓冲区的地址,然后再访问数据
构造函数
void test01()
{deque<int>d1;deque<int>d2(d1.begin(),d1.end());deque<int>d3(10,100);deque<int>d4(d3);
}
deque的其余操作基本同vector一致
deque没有容量的概念
deque可以进行头插,头删和尾插,尾删
其余插入删除操作和vector类似
stack栈式容器
特点
先进后出,只有一个出口,只在顶部进出,因为只有栈顶元素才可以被外界访问到,所以不可以进行遍历,但是可以判断容器是否为空,以及其中元素数目
入栈:push
出栈:pop
举个例子,弹匣,只能从顶端往里面放,顶端弹出,然后每次使用的是最上的一颗子弹
常用接口
void test01()
{stack<int> s;s.push(1);s.push(2);if(!s.empty()){cout<< "栈顶元素:"<<s.top()<<endl;s.pop();}cout<<"栈的大小:"<<s.size()<<endl;
}
queue队列容器
遵循规则:先进后出,存在两个出口,但是出去只能从队首出,进入从队尾进入
只有队首和队尾才可以被外界访问到,因此队列也不允许有遍历行为
数据进入叫入队 push
数据出去叫出队 pop
其方法同stack栈相差不大,这里就不多做介绍了
list链表
功能:将数据进行链式存储
链表是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的
链表由一系列节点组成
包含两个域:分别为存储数据元素的数据域以及下一个结点地址的指针域
STL中给提供的链表是一个双向循环链表
存在两个指针域,一个指向前面的结点,一个指向后面的结点,同时最后一个结点指向第一个结点
链表中的迭代器只会支持前移和后移,属于双向迭代器
构造函数
void test01()
{list<int> L1;L1.push_back(10);L1.push_back(20);list<int>L2(L1.begin(),L2.begin);list<int>L3(L2);list<int>L4(10,1000);
}
list构造方式同其余容器的方式基本一致
赋值和交换
大小操作
插入和删除
这里注意pos代表的是迭代器,同时新增方法remove,此方法是可以移除容器中所有域elem相同的元素
list的反转和排序
bool myCompare(int v1,int v2) { return v1>v2; }void test01()
{list<int> l1;l1.push_back(10);l1.push_back(20);l1.push_back(40);l1.push_back(30);//反转操作l1.reverse();l1.sort();//默认为从小到大l1.sort(myCompare);}
note:所有不支持随机访问迭代器的容器,不可以使用标准算法,内部会存在一些算法
set/multiset集合容器
所有元素都会再插入时自动被排序
均属于关联式容器,底层结构是用二叉树实现
set中不允许存在重复的元素,multiset允许容器存在重复的元素
set构造函数提供两种构造方法
默认构造函数:set<T> st;
拷贝构造函数:set(const set &st);
赋值操作:重载等号运算符。
note:插入数据仅有insert方式
使用size()判断容器中元素的数据
empty() 判断容器是否为空
swap(st) 交换两个集合容器
set容器的删除操作
set容器的查找与统计
对于set而言,统计的结果要么是0,要么是1
对组
pair<string,int>p("Tom",20);p.first//取出第一个数据
p.second//取出第二个数据pair<string,int>p = make_pair("Tom",20);
改变set容器排序规则
利用仿函数
//set容器排序class mycompare
{
public:bool operator()(int v1,int v2){ return v1>v2; }
}void test01()
{set<int,mycompare> s1;s1.insert(10);s1.insert(20);s1.insert(30);s1.insert(40);//指定排序规则,需要在还没有插入数据的时候确定排序规则}
map元组
map中元素都是键值对
第一个元素为键值,起到一个索引的作用
第二个元素为实值
所有元素回按照元素的键值进行自动排序,底层使用二叉树实现
优点在于可以根据key值快速找到value值
map容器不允许容器存在重复的key元素
构造包括默认构造和拷贝构造
赋值还是重载了等号运算符
void test01()
{map<int,int> m;m.insert(pair<int,int>(1,10));m.insert(pair<int,int>(2,20));m.insert(pair<int,int>(3,30));m.insert(pair<int,int>(4,40));//迭代器访问map<int,int>::iterator it = m.begin();it -> first;//访问keyit -> second;//访问value
}
查找,统计,插入,删除与set类似,这里不做介绍
相关文章:
C++中的STL
STL(标准模板库)在广义上分为:容器,算法,迭代器 容器和算法之间通过迭代器进行无缝衔接 STL大体上分为六大组件:分别为容器,算法,迭代器,仿函数,适配器,空间…...
前端进程和线程及介绍
前端开发中经常涉及到进程和线程的概念,特别是在浏览器中。理解这两个概念对于理解浏览器的工作机制和前端性能优化非常重要。以下是详细介绍: 1. 什么是进程和线程? 进程: 是操作系统分配资源的基本单位。一个程序启动后…...
本地用docker装mysql
目录 拉取镜像查看镜像 启动容器查看运行中的容器连接到 MySQL 容器其他一些操作 装WorkBench链接mysql——————————————允许远程登录MySql 拉取镜像 docker pull mysql查看镜像 docker image lsREPOSITORY TAG IMAGE ID CREATED SIZE mysq…...
设计模式 行为型 责任链模式(Chain of Responsibility Pattern)与 常见技术框架应用 解析
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许将请求沿着处理者链进行发送。每个处理者对象都有机会处理该请求,直到某个处理者决定处理该请求为止。这种模式的主要目的是避免请求的发送者和接收者之间…...
Apache Spark中与数据分区相关的配置和运行参数
Apache Spark中与数据分区相关的配置和运行参数涉及多个方面,包括动态分区设置、分区数设置、Executor与并行度配置等。合理配置这些参数可以显著提高Spark作业的执行效率和资源利用率。在实际应用中,建议根据业务需求和计算集群的特性进行相应的调整和测…...
“深入浅出”系列之设计模式篇:(0)什么是设计模式
设计模式六大原则 1. 单一职责原则:一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化。 核心思想:控制类的粒度大小,将对象解耦,提高其内聚性。 2. 开闭原则:对扩展开放…...
【Git版本控制器--1】Git的基本操作--本地仓库
目录 初识git 本地仓库 认识工作区、暂存区、版本库 add操作与commit操作 master文件与commit id 修改文件 版本回退 撤销修改 删除文件 初识git Git 是一个分布式版本控制系统,主要用于跟踪文件的更改,特别是在软件开发中。 为什么要版本…...
如何在Jupyter中快速切换Anaconda里不同的虚拟环境
目录 介绍 操作步骤 1. 选择环境,安装内核 2. 注册内核 3. 完工。 视频教程 介绍 很多网友在使用Jupyter的时候会遇到各种各样的问题,其中一个比较麻烦的问题就是我在Anaconda有多个Python的环境里面,如何让jupyter快速切换不同的Pyt…...
Python自学 - “包”的创建与使用(从头晕到了然)
<< 返回目录 1 Python自学 - “包”的创建与使用(从头晕到了然) 相对于模块,包是一个更大的概念,按照业界的开发规范,1个代码文件不要超过1000行,稍微有点规模的任务就超过这个代码限制了,必然需要多个文件来管…...
ElasticSearch 同义词匹配
synonym.txt 电脑, 计算机, 主机 复印纸, 打印纸, A4纸, 纸, A3 平板电脑, Pad DELETE /es_sku_index_20_20250109 PUT /es_sku_index_20_20250109 {"settings": {"index": {"number_of_shards": "5","number_of_replicas&quo…...
android 官网刷机和线刷
nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…...
Vue环境变量配置指南:如何在开发、生产和测试中设置环境变量
-## 前言 Vue.js是一个流行的JavaScript框架,它提供了许多工具和功能来帮助开发人员构建高效、可维护的Web应用程序。其中一个重要的工具是环境变量,它可以让你在不同的环境中配置不同的参数和选项。在这篇博客中,我们将介绍如何在Vue应用程…...
蓝桥杯_B组_省赛_2022(用作博主自己学习)
题目链接算法11.九进制转十进制 - 蓝桥云课 进制转换 21.顺子日期 - 蓝桥云课 时间与日期 31.刷题统计 - 蓝桥云课 时间与日期 41.修剪灌木 - 蓝桥云课 思维 51.X 进制减法 - 蓝桥云课 贪心 61.统计子矩阵 - 蓝桥云课 二维前缀和 71.积木画 - 蓝桥云课 动态规划 82.扫雷 - 蓝桥…...
【干货】交换网络环路介绍
定义 以太网交换网络中为了提高网络可靠性,通常会采用冗余设备和冗余链路,然而现网中由于组网调整、配置修改、升级割接等原因,经常会造成数据或协议报文环形转发,不可避免的形成环路。如图7-1所示,三台设备两两相连就…...
unity——Preject3——面板基类
目录 1.Canvas Group Canvas Group 的功能 Canvas Group 的常见用途 如何使用 Canvas Group 2.代码 3.代码分析 类分析:BasePanel 功能 作用 实际应用 代码解析:hideCallBack?.Invoke(); 语法知识点 作用 虚函数(virtual)和抽象类(abstract)的作用与区别 …...
BTC系列 - 启示录
推荐《区块链启示录:中本聪文集》这本书, 原来早在2010年, BTC生态还不完善的时候, 社区中就已经畅想出了未来其它链上的特色方案, 中本聪也都一一做了教父级回应: coinbase币的成熟时间, 交易池, 交易确认机制, 防51%攻击, 防双重消费, 水龙头, 轻量级客户端, 链上…...
C# 25Dpoint
C# 25Dpoint ,做一个备份 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace _25Dpoint {public partial cl…...
Kotlin构造函数
class Person {var name: String? nullvar age: Int? nullfun think() {println("Mr./Ms.$name, who is $age years old, is thinking!")} }fun main () {val p Person()p.name "Jimmy"p.age 20p.think() } 在Kotlin中任意一个非抽象类都无法被继承…...
springMVC---resultful风格
目录 一、创建项目 pom.xml 二、配置文件 1.web.xml 2.spring-mvc.xml 三、图解 四、controller 一、创建项目 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi…...
flutter 装饰类【BoxDecoration】
装饰类 BoxDecoration BoxDecoration 是 Flutter 中用于控制 Container 等组件外观的装饰类,它提供了丰富的属性来设置背景、边框、圆角、阴影等样式。 BoxDecoration 的主要属性 1.color 背景颜色。类型:Color?示例: color: Colors.blu…...
自动连接校园网wifi脚本实践(自动网页认证)
目录 起因执行步骤分析校园网登录逻辑如何判断当前是否处于未登录状态? 书写代码打包设置开机自动启动 起因 我们一般通过远程控制的方式访问实验室电脑,但是最近实验室老是断电,但重启后也不会自动连接校园网账户认证,远程工具&…...
微信小程序集成Vant Weapp移动端开发的框架
什么是Vant Weapp Vant 是一个轻量、可靠的移动端组件库,于 2017 年开源。 目前 Vant 官方提供了 Vue 2 版本、Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付宝小程序版本。 官网地睛:介绍 - Vant Weapp (vant-ui.gith…...
MySQL从库 Last_SQL_Errno: 1197 问题处理过程
记录一个遇到过的错误,今天整理一下。 问题 MySQL error code MY-001197 (ER_TRANS_CACHE_FULL): Multi-statement transaction required morethan max_binlog_cache_size bytes of storage; increase this mysqld variable and try again报错很明显是max_binlog_…...
springboot 加载本地jar到maven
在Spring Boot项目中,如果你想要加载一个本地的jar文件到Maven本地仓库,你可以使用Maven的install-file目标来实现。以下是一个简单的例子: 打开命令行工具(例如:终端或者命令提示符)。 执行以下Maven命令…...
面向B站商业化场景的广告标题智能推荐
01.背景 大模型的发展也在不断改变广告主/代理商广告创编的过程,为了提高广告主的创作效率,提升广告主投放标题的质量,我们利用大语言模型技术以及B站商业数据,能够让广告主仅需要输入特定的关键词,即可以生成理论上无…...
element plus 使用 upload 组件达到上传数量限制时隐藏上传按钮
最近在重构项目,使用了 element plus UI框架,有个功能是实现图片上传,且限制只能上传一张图片,结果,发现,可以限制只上传一张图片,但是上传按钮还在,如图: 解决办法&…...
java进行pdf文件压缩
文章目录 pdf文件压缩 pdf文件压缩 添加依赖 <dependency><groupId>com.luhuiguo</groupId><artifactId>aspose-pdf</artifactId><version>23.1</version> </dependency>public class OptimizePdf {public static void opti…...
初识算法和数据结构P1:保姆级图文详解
文章目录 前言1、算法例子1.1、查字典(二分查找算法)1.2、整理扑克(插入排序算法)1.3、货币找零(贪心算法) 2、算法与数据结构2.1、算法定义2.2、数据结构定义2.3、数据结构与算法的关系2.4、独立于编程语言…...
内网服务器添加共享文件夹功能并设置端口映射
参考网址 https://blog.csdn.net/Think88666/article/details/118438465 1.服务器安装smb服务,由于网路安全不允许使用默认端口(445,446),于是修改端口为62445、62446。 2.每台需要共享的电脑都要修改端口映射&#x…...
ruoyi-cloud docker启动微服务无法连接nacos,Client not connected, current status:STARTING
ruoyi-cloud docker启动微服务无法连接nacos,Client not connected, current status:STARTING 场景 当使用sh deploy.sh base来安装mysql、redis、nacos环境后,紧接着使用sh deploy.sh modules安装微服务模块,会发现微服务无法连接nacos的情…...
Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)
一、函数基础 1.1、函数的用法和底层分析 函数是可重用的程序代码块。 函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时…...
excel 整理表格,分割一列变成多列数据
数据准备 对于很多系统页面的数据是没有办法下载的。 这里用表格数据来举例。随便做数据的准备。想要看excel部分的可以把这里跳过,从数据准备完成开始看。 需要一点前端基础知识,但不多(不会也行)。 把鼠标放在你想要拿到本地的…...
Oracle 分区索引简介
目录 一. 什么是分区索引二. 分区索引的种类2.1 局部分区索引(Local Partitioned Index)2.2 全局分区索引(Global Partitioned Index) 三. 分区索引的创建四. 分区索引查看4.1 USER_IND_COLUMNS 表4.2 USER_INDEXES 表 五. 分区索…...
C++实现设计模式--- 观察者模式 (Observer)
观察者模式 (Observer) 观察者模式 是一种行为型设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,其依赖者(观察者)会收到通知并自动更新。 意图 定义对象之间的一对多依赖关系。当一个对象状…...
CentOS 6.8 安装 Nginx
个人博客地址:CentOS 6.8 安装 Nginx | 一张假钞的真实世界 提前安装: # sudo yum install yum-utils 一般情况下这个工具系统已经安装。 创建文件/etc/yum.repos.d/nginx.repo,输入内容如下: [nginx-stable] namenginx stab…...
px、em 和 rem 的区别:深入理解 CSS 中的单位
文章目录 前言一、px - 像素 (Pixel)二、em - 相对父元素字体大小 (Ems)三、rem - 相对于根元素字体大小 (Root Ems)四、综合比较结语 前言 在CSS中,px、em和rem是三种用于定义尺寸(如宽度、高度、边距、填充等)的长度单位。它们各自有不同的…...
vue 表格内点编辑,单元格不切换成输入框问题分析
vue 表格渲染时,我点击编辑时,想直接在单元格上面进行编辑。 效果如下,正常是文本效果,点击编辑时,出现输入框 其实实现起来,逻辑很简单,但是中间我却出现了一个问题,效果始终出不…...
MATLAB学习笔记-table
1.在table中叠加table table 的每一列具有固定的数据类型。如果要让表的所有单元格都可以任意填充,就得让每一列都是 cell 类型,这样表中每个单元格都是“一个元胞”。创建时可以先构造一个 空 cell 数组(大小为行数列数)&#x…...
使用 selenium-webdriver 开发 Web 自动 UI 测试程序
优缺点 优点 有时候有可能一个改动导致其他的地方的功能失去效果,这样使用 Web 自动 UI 测试程序可以快速的检查并定位问题,节省大量的人工验证时间 缺点 增加了维护成本,如果功能更新过快或者技术更新过快,维护成本也会随之提高…...
ffmpeg硬件编码
使用FFmpeg进行硬件编码可以显著提高视频编码的性能,尤其是在处理高分辨率视频时。硬件编码利用GPU或其他专用硬件(如Intel QSV、NVIDIA NVENC、AMD AMF等)来加速编码过程。以下是使用FFmpeg进行硬件编码的详细说明和示例代码。 1. 硬件编码支…...
脚本化挂在物理盘、nfs、yum、pg数据库、nginx(已上传脚本)
文章目录 前言一、什么是脚本化安装二、使用步骤1.物理磁盘脚本挂载(离线)2.yum脚本化安装(离线)3.nfs脚本化安装(离线)4.pg数据库脚本化安装(离线)5.nginx脚本化安装(离…...
// Error: line 1: XGen: Candidate guides have not been associated!
Maya xgen 报错// Error: line 1: XGen: Candidate guides have not been associated! 复制下面粘贴到Maya脚本管理器python运行: import maya.cmds as cmds def connect_xgen_guides():guide_nodes cmds.ls(typexgmMakeGuide)for node in guide_nodes:downstream…...
投机解码论文阅读:Falcon
题目:Falcon: Faster and Parallel Inference of Large Language Models through Enhanced Semi-Autoregressive Drafting and Custom-Designed Decoding Tree 地址:https://arxiv.org/pdf/2412.12639 一看它的架构图,可以发现它是基于EAGLE…...
OpenCV实现基于交叉双边滤波的红外可见光融合算法
1 算法原理 CBF是*Cross Bilateral Filter(交叉双边滤波)*的缩写,论文《IMAGE FUSION BASED ON PIXEL SIGNIFICANCE USING CROSS BILATERAL FILTER》。 论文中,作者使用交叉双边滤波算法对原始图像 A A A, B B B 进行处理得到细节࿰…...
Springboot整合WebService
1.1 概述 webservice 即 web 服务,因互联网而产生,通过 webservice 这种 web 服务,我们可以实现互联网应 用之间的资源共享,比如我们想知道 手机号码归属地,列车时刻表,天气预报,省市区邮…...
504 Gateway Timeout:网关超时解决方法
一、什么是 504Gateway Timeout? 1. 错误定义 504 Gateway Timeout 是 HTTP 状态码的一种,表示网关或代理服务器在等待上游服务器响应时超时。通俗来说,这是服务器之间“对话失败”导致的。 2. 常见触发场景 Nginx 超时:反向代…...
C++ 的 pair 和 tuple
1 std::pair 1.1 C 98 的 std::pair 1.1.1 std::pair 的构造 C 的二元组 std::pair<> 在 C 98 标准中就存在了,其定义如下: template<class T1, class T2> struct pair;std::pair<> 是个类模板,它有两个成员&#x…...
抢十八游戏
前言 我国民国一直流传着一个名叫“抢十八”的抢数游戏:参与游戏的两人从1开始轮流报数,每次至少报1个数,最多报2个数,每人报的每个数不得与自已报过的或对方报过的重复,也不得跳过任何一个数。谁先报到18,…...
从玩具到工业控制--51单片机的跨界传奇【2】
咱们在上一篇博客里面讲解了什么是单片机《单片机入门》,让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识,顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话,可以看看博主的C语言专栏哟ÿ…...
LLM实现视频切片合成 前沿知识调研
1.相关产品 产品链接腾讯智影https://zenvideo.qq.com/可灵https://klingai.kuaishou.com/即梦https://jimeng.jianying.com/ai-tool/home/Runwayhttps://aitools.dedao.cn/ai/runwayml-com/Descripthttps://www.descript.com/?utm_sourceai-bot.cn/Opus Cliphttps://www.opu…...