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

【Rust】常见集合

目录

思维导图

一、Rust常用集合

1. Rust标准库中的集合概述

2. 常用集合类型

2.1 向量(Vector)

2.2 字符串(String)

2.3 哈希映射(Hash Map)

二、向量(Vec)

1. 向量的概述

2. 创建向量

3. 添加元素

4. 访问元素

5. 修改元素

6. 遍历向量

7. 使用枚举存储多种类型

8.向量的生命周期 

三、字符串(String)

1.字符串的概述

2.字符串的创建

3.字符串的更新

4.字符串的连接

5.字符串的访问

四、哈希映射(HashMap)

1. 哈希映射的概述

2. 创建哈希映射

3. 插入哈希映射值

4. 访问哈希映射中的值

5. 遍历哈希映射

6. 哈希映射的所有权

7. 更新哈希映射

8. 哈希函数


思维导图

一、Rust常用集合

1. Rust标准库中的集合概述

        Rust的标准库包含了一些非常有用的数据结构,统称为集合(Collections)。与其他数据类型不同,集合可以存储多个值。集合的数据存储在堆上,因此其大小可以在程序运行时动态变化,而不必在编译时确定。

2. 常用集合类型

在Rust中,常用的集合类型主要包括以下三种:

2.1 向量(Vector)
  • 定义:向量是一种可以存储可变数量的值的集合。
  • 特点:向量的元素在内存中是连续存储的,可以根据需要动态扩展或缩减。
  • 使用场景:适合需要频繁插入、删除元素的场合,能够高效地处理动态数据。
2.2 字符串(String)
  • 定义:字符串是字符的集合。
  • 特点:Rust中的String类型支持动态大小,可以根据需要进行扩展。
  • 使用场景:适用于需要处理文本数据的场合,如用户输入、文件读取等。
2.3 哈希映射(Hash Map)
  • 定义:哈希映射是一种将特定键与值关联的数据结构,属于更通用的数据结构“映射”的一种实现。
  • 特点:允许通过键快速访问对应的值,适合存储键值对数据。
  • 使用场景:常用于需要快速查找、插入和删除的场合,如缓存实现、统计数据等。

二、向量(Vec)

1. 向量的概述

        向量(Vec<T>是一种动态数组,可以存储多个相同类型的值。它在内存中是连续存储的,支持高效的随机访问和动态扩展。

2. 创建向量

        1)空向量的创建:使用Vec::new()函数创建一个空向量。例如:

fn main() {let v: Vec<i32> = Vec::new();[3]//这里需要类型注释,因为未插入任何值,Rust无法推断元素类型。
}

        2) 带初始值的向量:使用vec!宏创建带初始值的向量。例如:

fn main() {let v = vec![1, 2, 3];//Rust可以根据提供的初始值推断类型为Vec<i32>,因此类型注释不再必要。
}

3. 添加元素

        添加元素:使用push方法向向量中添加元素,必须将向量声明为可变(mutable):

fn main() {let mut v = Vec::new();v.push(5);v.push(6);
}

4. 访问元素

        访问元素:可以通过索引或get方法访问向量中的元素。值得注意的是,使用get方法时,如果索引超出范围,返回None,而使用索引直接访问则会导致程序崩溃。例如:

let third: &i32 = &v[2];
let third: Option<&i32> = v.get(2);

5. 修改元素

        1)通过索引直接修改:通过索引可以直接访问并修改向量中的元素。需要注意的是,向量必须是可变的(mut),并且索引必须在有效范围内。例如:

fn main() {let mut v = vec![1, 2, 3, 4];// 修改索引为 2 的元素v[2] = 100;println!("{:?}", v); // 输出: [1, 2, 100, 4]
}

        2)通过get_mut方法修改:get_mut 方法返回一个 Option<&mut T>,允许安全地修改元素。如果索引有效,则返回可变引用;如果索引无效,则返回 None。例如:

fn main() {let mut v = vec![1, 2, 3, 4];// 获取索引为 2 的可变引用if let Some(elem) = v.get_mut(2) {*elem = 100; // 修改元素}println!("{:?}", v); // 输出: [1, 2, 100, 4]
}

6. 遍历向量

        1)不可变遍历:使用for循环遍历向量中的每个元素:

for i in &v {println!("{i}");
}

        2)可变遍历:可以通过可变引用遍历并修改每个元素:

for i in &mut v {*i += 50;
}

7. 使用枚举存储多种类型

        由于向量只能存储相同类型的值,可以使用枚举来存储不同类型的值。例如:

enum SpreadsheetCell {Int(i32),Float(f64),Text(String),
}
let row = vec![SpreadsheetCell::Int(3),SpreadsheetCell::Text(String::from("blue")),SpreadsheetCell::Float(10.12),
];

8.向量的生命周期 

        向量在超出作用域时会自动释放其内存,所有元素也会随之释放。例如:

{let v = vec![1, 2, 3, 4];
} // v 超出作用域并被释放

三、字符串(String)

1.字符串的概述

        字符串(String是 UTF-8 编码的字符集合,支持动态扩展。Rust 的字符串类型包括 String 和字符串切片 &str

2.字符串的创建

        通过String::new()创建一个新的空字符串,或使用to_string()String::from()方法从字符串字面量创建字符串。示例代码如下:

fn main() {let mut s = String::new();let data = "initial contents";let s1 = data.to_string();let s2 = String::from("initial contents");
}

3.字符串的更新

  String可以通过push_str方法追加字符串切片,或使用push方法添加单个字符。示例代码如下:

fn main() {let mut s = String::from("foo");s.push_str("bar");s.push('!');    //foobar!
}

4.字符串的连接

        可以使用 +操作符或format!宏来连接字符串。使用 +操作符时,左侧字符串会被移动,示例代码如下:

fn main() {let s1 = String::from("Hello, ");[7][8]let s2 = String::from("world!");let s3 = s1 + &s2; // s1被移动,s2仍然有效
}

5.字符串的访问

        Rust不支持直接通过索引访问字符串中的字符,需使用chars()方法或bytes()方法进行迭代。例如:

fn main() {let hello = "Здравствуйте";[7]for c in hello.chars() {println!("{c}");}
}

四、哈希映射(HashMap)

1. 哈希映射的概述

        哈希映射(HashMap<K, V>是一种键值对集合,通过哈希函数将键映射到值。它允许通过键快速查找、插入和删除值。

2. 创建哈希映射

        可以使用HashMap::new()方法创建一个空的哈希映射。示例代码:

fn main() {use std::collections::HashMap;let mut scores = HashMap::new();
}

3. 插入哈希映射值

       可以使用insert方法添加元素。示例代码:

scores.insert(String::from("Blue"), 10);
scores.insert(String::from("Yellow"), 50);

4. 访问哈希映射中的值

        可以使用get方法通过键访问对应的值,返回类型为Option<&V>,如果键不存在,则返回None。示例代码:

let score = scores.get(&team_name).copied().unwrap_or(0);

ps: 此程序通过调用 copied 来获取一个 Option<i32> 而不是 Option<&i32> 来处理 Option ,然后如果 scores 没有该键的条目,则调用 unwrap_or 将 score 设置为零。

5. 遍历哈希映射

        可以使用for循环遍历哈希映射中的每个键值对。示例代码:

for (key, value) in &scores {println!("{key}: {value}");
}

6. 哈希映射的所有权

        对于实现了Copy特性的类型(如i32),值会被复制到哈希映射中;对于拥有所有权的类型(如String),值会被移动到哈希映射中。示例代码:

fn main() {use std::collections::HashMap;let field_name = String::from("Favorite color");let field_value = String::from("Blue");let mut map = HashMap::new();map.insert(field_name, field_value);//此处将使field_name和field_value在插入后失效
}

7. 更新哈希映射

        1)覆盖值:插入同一键的新值会替换旧值。示例代码:

scores.insert(String::from("Blue"), 10);
scores.insert(String::from("Blue"), 25);
//{"Blue": 25}

        2)仅在键不存在时插入:使用entry方法检查键是否存在,若不存在则插入新值。示例代码:

scores.entry(String::from("Yellow")).or_insert(50);

ps-1: entry 方法的返回值是一个名为 Entry的枚举,它表示一个可能存在也可能不存在的值。

ps-2: Entry 上的 or_insert 方法被定义为:如果对应的 Entry 键存在,则返回该值的可变引用;如果不存在,则将参数插入作为该键的新值,并返回新值的可变引用。

8. 哈希函数

        默认情况下,HashMap使用名为SipHash的哈希函数,具有防止拒绝服务(DoS)攻击的能力。虽然其性能可能不如其他哈希算法,但在安全性和性能之间的权衡是值得的。

tips:

  • 向量:常用操作包括创建(Vec::new()vec![])、添加(push)、访问(索引、get)、修改(索引、get_mut)和遍历(for循环)。

  • 字符串:常用操作包括创建(String::new()to_string())、更新(push_strpush)、连接(+format!)和遍历(chars()bytes())。

  • 哈希映射:常用操作包括创建(HashMap::new())、插入insert)、访问(get)、遍历(for循环)和更新(entryor_insert)。

 

相关文章:

【Rust】常见集合

目录 思维导图 一、Rust常用集合 1. Rust标准库中的集合概述 2. 常用集合类型 2.1 向量&#xff08;Vector&#xff09; 2.2 字符串&#xff08;String&#xff09; 2.3 哈希映射&#xff08;Hash Map&#xff09; 二、向量&#xff08;Vec&#xff09; 1. 向量的概述…...

55. 跳跃游戏

题目 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 C #include <…...

关于 ThinkPHP 与 PostgreSQL 结合使用的一些要点

ThinkPHP 是一款流行的 PHP 开发框架&#xff0c;而 PostgreSQL 是功能强大的开源关系型数据库。它们可以结合使用来开发各类应用&#xff0c;以下是关于 ThinkPHP 与 PostgreSQL 结合使用的一些要点&#xff1a; 配置数据库连接 编辑配置文件&#xff1a;在 ThinkPHP 项目中&…...

【 PID 算法 】PID 算法基础

一、简介 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&#xff09;、Differential&#xff08;微分&#xff09;的缩写。也就是说&#xff0c;PID算法是结合这三种环节在一起的。粘一下百度百科中的东西吧。 顾名思义&#xff0c;…...

介绍下不同语言的异常处理机制

Golang 在Go语言中&#xff0c;有两种用于处于异常的机制&#xff0c;分别是error和panic&#xff1b; panic panic 是 Go 中处理异常情况的机制&#xff0c;用于表示程序遇到了无法恢复的错误&#xff0c;需要终止执行。 使用场景 程序出现严重的不符合预期的问题&#x…...

Sprint Boot教程之五十八:动态启动/停止 Kafka 监听器

Spring Boot – 动态启动/停止 Kafka 监听器 当 Spring Boot 应用程序启动时&#xff0c;Kafka Listener 的默认行为是开始监听某个主题。但是&#xff0c;有些情况下我们不想在应用程序启动后立即启动它。 要动态启动或停止 Kafka Listener&#xff0c;我们需要三种主要方法…...

Linux服务器网络丢包场景及解决办法

一、Linux网络丢包概述 在数字化浪潮席卷的当下&#xff0c;网络已然成为我们生活、工作与娱乐不可或缺的基础设施&#xff0c;如同空气般&#xff0c;无孔不入地渗透到各个角落。对于 Linux 系统的用户而言&#xff0c;网络丢包问题却宛如挥之不去的 “噩梦”&#xff0c;频繁…...

2025年01月13日Github流行趋势

1. 项目名称&#xff1a;Jobs_Applier_AI_Agent 项目地址url&#xff1a;https://github.com/feder-cr/Jobs_Applier_AI_Agent项目语言&#xff1a;Python历史star数&#xff1a;25929今日star数&#xff1a;401项目维护者&#xff1a;surapuramakhil, feder-cr, cjbbb, sarob…...

贪心算法详细讲解(沉淀中)

文章目录 1. 什么是贪心算法&#xff1f;&#xff08;贪婪鼠目寸光&#xff09;经典例题1.1.1 找零问题1.1.2最小路径和1.1.3 背包问题 2.贪心算法的特点2.1 证明例1 3.学习贪心的方向心得体会 1. 什么是贪心算法&#xff1f;&#xff08;贪婪鼠目寸光&#xff09; 贪心策略&a…...

C/C++ 数据结构与算法【排序】 常见7大排序详细解析【日常学习,考研必备】带图+详细代码

常见7种排序算法 冒泡排序&#xff08;Bubble Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;归并排序&#xff08;Merge Sort&#xff09;快速排序&#xff08;…...

Oracle Dataguard(主库为双节点集群)配置详解(4):配置备库

Oracle Dataguard&#xff08;主库为双节点集群&#xff09;配置详解&#xff08;4&#xff09;&#xff1a;配置备库 目录 Oracle Dataguard&#xff08;主库为双节点集群&#xff09;配置详解&#xff08;4&#xff09;&#xff1a;配置备库一、为备库配置静态监听1、配置 li…...

【Unity3D日常开发】Unity3D中打开Window文件对话框打开文件(PC版)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 这篇文章继续讲如何使用Unity3D打开Window文…...

STM32-RTC实时时钟

1.0 RTC简介 RTC&#xff08;Real Time Clock&#xff09;实时时钟 RTC是一个独立的定时器&#xff0c;可为系统提供时钟和日历的功能 RTC和时钟配置系统处于后备区域&#xff0c;系统复位时数据不清零&#xff0c;VDD&#xff08;2.0~3.6V&#xff09;断电后可借助VBAT&#x…...

QT跨平台应用程序开发框架(1)—— 环境搭建

目录 一&#xff0c;关于QT 二&#xff0c;关于应用程序框架 三&#xff0c;环境搭建 3.1 预备 3.2 下载Qt SDK 3.3 安装Qt SDK 3.4 配置环境变量 3.5 认识一些重要工具 四&#xff0c;Qt Creator 的基本使用 4.1 创建项目 4.2 代码解释 一&#xff0c;关于QT 互联网…...

HTB:Paper[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 对靶机进行子域…...

【数据可视化-12】数据分析岗位招聘分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

UE材质节点Fresnel

Fresnel节点 ExponentIn 控制边缘透明度 BaseReflectFractionIn 控制中心透明度...

宁德时代C++后端开发面试题及参考答案

请阐述面向对象的三大特性。 面向对象编程有三大特性,分别是封装、继承和多态。 封装是指将数据和操作数据的方法绑定在一起,对数据的访问和操作进行限制。这样做的好处是可以隐藏对象的内部细节,只暴露必要的接口给外部。例如,我们可以把一个汽车类的内部引擎状态、速度等…...

opencv warpAffine仿射变换C++源码分析

基于opencv 3.1.0源代码 sources\modules\imgproc\src\imgwarp.cpp void cv::warpAffine( InputArray _src, OutputArray _dst,InputArray _M0, Size dsize,int flags, int borderType, const Scalar& borderValue ) {...if( !(flags & WARP_INVERSE_MAP) ){//变换矩阵…...

六十九:基于openssl实战验证RSA

RSA&#xff08;Rivest-Shamir-Adleman&#xff09;是一种非对称加密算法&#xff0c;广泛应用于数据加密和数字签名领域。在实际开发和学习过程中&#xff0c;理解 RSA 的工作原理和使用场景非常重要。本文将以 OpenSSL 工具为基础&#xff0c;通过实例操作来验证和理解 RSA 的…...

Docker的CMD指令

CMD指令是Dockerfile中的一个重要指令&#xff0c;用于指定容器启动时执行的默认命令。CMD为容器运行时提供了一个默认的执行指令&#xff0c;可以在容器启动时自动运行该命令。 * CMD指令用于指定容器启动时的默认命令 CMD指令指定的命令通常是容器启动后要执行的主要进程。…...

redis缓存篇知识点总结

1.缓存雪崩 当大量缓存数据在同一时间过期(失效)或者 Redis 故障宕机时,如果此时有大量的用户请求,都无法在 Redis 中处理,于是全部请求都直接访问数据库,从而导致数据库的压力骤增,严重的会造成数据库宕机,从而形成一系列连锁反应,造成整个系统崩溃 发生缓存雪崩有两…...

onlyoffice编辑服务部署

下载官方镜像 下载onlyoffice_7.4.1.tar.gz镜像包 安装官方镜像 上传镜像包后执行 docker load -i onlyoffice_7.4.1.tar.gz 将镜像部署到本地仓库 下载onlyoffice编辑服务包 下载onlyoffice.zip包 启动onlyoffice编辑服务 上传包至服务器&#xff0c;解压包&#xff0c;…...

RPC实现原理,怎么跟调用本地一样

回答1 要让⽹络通信细节对使⽤者透明&#xff0c;我们需要对通信细节进⾏封装&#xff0c;我们先看下⼀个 RPC 调⽤的流程涉及到哪些通 信细节&#xff1a; 1. 服务消费⽅&#xff08; client &#xff09;调⽤以本地调⽤⽅式调⽤服务&#xff1b; 2. client stub 接收到调…...

JDK下载安装配置

一.JDK安装配置。 1.安装注意路径,其他直接下一步。 2.配置。 下接第4步. 或者 代码复制: JAVA_HOME D:\Program Files\Java\jdk1.8.0_91 %JAVA_HOME%\bin 或者直接配置 D:\Program Files\Java\jdk1.8.0_91\bin 3.验证(CMD)。 java javac java -version javac -version 二.下…...

C++(3)

1.顺序表封装 #include <iostream>using namespace std;//类型重命名 using datatype int;//定义一个顺序表类 class SeqList { private:datatype *data;//指向堆区空间的指针int size 0;//数组大小int len 0;//顺序表实际长度public://无参构造SeqList():data(new d…...

工具学习_Conan_Install

1. 依赖关系获取 为了获取TPL间的依赖关系&#xff0c;我们首先从 GitHub 项目中提取 Conan 包含的组件&#xff0c;如下所示&#xff1a; 在获取组件名之后&#xff0c;我们根据组件名从 Conan 中获取 TPL 间的依赖关系&#xff0c;如下图所示&#xff1a; 之后获得包含TPL间…...

忘记了PDF文件的密码,怎么办?

PDF文件可以加密&#xff0c;大家都不陌生&#xff0c;并且大家应该也都知道PDF文件有两种密码&#xff0c;一个打开密码、一个限制编辑密码&#xff0c;因为PDF文件设置了密码&#xff0c;那么打开、编辑PDF文件就会受到限制。忘记了PDF密码该如何解密&#xff1f; PDF和offi…...

HTML实战课堂之启动动画弹窗

一&#xff1a;代码片段讲解 小提示&#xff1a;下面是一个包含启动页和弹窗的完整示例。这个示例包括一个简单的启动页和一个弹窗&#xff0c;当用户点击启动页上的按钮时&#xff0c;会显示弹窗。 1. **HTML结构**&#xff1a; - #startPage&#xff1a;启动页&#xff0c;包…...

thinkphp 5.0 结合redis 做延迟队列,队列无法被消费

目录 一、Linux 环境下 二、如何验证消息队列被正确监听 一、Linux 环境下 项目部署在Linux 环境下&#xff0c;首先找到项目的部署路径&#xff0c;接着输入命令,这个命令是以守护进程方式进行监听你的队列&#xff0c;只要redis 不关闭 就可以一直监听这个队列 nohup php …...

open3d+opencv实现矩形框裁剪点云操作(C++)

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; open3dopencv实现矩形框裁剪点云操作&#xff08;C&#xff…...

Android RIL(Radio Interface Layer)全面概述和知识要点(3万字长文)

在Android面试时,懂得越多越深android framework的知识,越为自己加分。 目录 第一章:RIL 概述 1.1 RIL 的定义与作用 1.2 RIL 的发展历程 1.3 RIL 与 Android 系统的关系 第二章:RIL 的架构与工作原理 2.1 RIL 的架构组成 2.2 RIL 的工作原理 2.3 RIL 的接口与协议…...

mac安装java17

目录 1、确保 Homebrew 已安装。如果没有安装&#xff0c;运行以下命令2、安装 OpenJDK 173、安装完成后&#xff0c;运行以下命令设置环境变量4、检查一下 1、确保 Homebrew 已安装。如果没有安装&#xff0c;运行以下命令 /bin/bash -c "$(curl -fsSL https://raw.gith…...

npx和npm区别

npx 和 npm 是 Node.js 生态中的两个工具&#xff0c;它们有不同的用途和功能&#xff1a; 1. npm&#xff08;Node Package Manager&#xff09; 主要作用&#xff1a; 包管理工具&#xff1a; 用来安装、管理、卸载 Node.js 的包&#xff08;module/library&#xff09;。提…...

STM32 FreeRTOS 介绍

目录 什么是裸机开发 什么是操作系统 通用操作系统 实时操作系统 FreeRTOS简介 FreeRTOS发展历史 FreeRTOS优势 FreeRTOS特点 什么是裸机开发 裸机开发指的是在没有操作系统&#xff08;OS&#xff09;或者其他高级软件支持的情况下&#xff0c;直接在裸机硬件上进行软…...

C#面向对象(封装,继承,多态,抽象)--08

目录 一.类和对象 1.类(Class) 2.对象 二.继承 1.定义 2.实现方式 三.多态 1.定义 2.实现方式 3.代码示例 四.抽象 1.定义 2.实现方式 3.代码示例 总结 面向对象(OOP)是C#编程语言的核心概念之一.它通过类和对象的方式来组织代码,提供了更高的代码复用性,可拓展性…...

Frp工具配置内网穿透

Frp工具配置内网穿透 一.资源准备 ​ 固定 IP 的公网服务器&#xff1a;最低配 1C1G 即可&#xff0c;硬盘 20G&#xff0c;带宽 10M&#xff0c;系统推荐使用 Debian 9 或 10&#xff08; Ubuntu 20.04 LTS&#xff09;。安全组需要开放 443、8080、8081 端口&#xff08;其他…...

pg_hba.conf是PostgreSQL中控制客户端认证和访问权限的配置文件

报错提示&#xff1a;FATAL: no pg_hba.conf entry for host "117.26.241.1", user "postgres", databa 报错解释&#xff1a; 这个错误表示PostgreSQL数据库服务器没有找到适合的认证方式来处理来自特定IP地址&#xff08;在这个例子中是117.26.241.1&a…...

Winforms开发基础之非主线程操作UI控件的误区

前言 想象一下&#xff0c;你正在开发一个桌面应用程序&#xff0c;用户点击按钮后需要执行一个耗时操作。为了避免界面卡顿&#xff0c;你决定使用后台线程来处理任务。然而&#xff0c;当你在后台线程中尝试更新UI控件时&#xff0c;程序突然崩溃了。这是为什么呢&#xff1…...

【机器学习】主动学习-增加标签的操作方法-流式选择性采样(Stream-based selective sampling)

Stream-Based Selective Sampling Stream-based selective sampling 是一种主动学习方法&#xff0c;在处理大量数据流时特别有用。它允许学习算法动态选择是否对当前数据实例进行标注&#xff08;通过与 Oracle 交互&#xff09;。此方法主要应用于流数据场景中&#xff0c;目…...

STL之VectorMapList针对erase方法踩坑笔记

前沿 如下总结的三种容器&#xff0c;开头都会涉及当前容器的特点&#xff0c;再者就本次针对erase方法的使用避坑总结。 一.Vector vector关联关联容器&#xff0c;存储内存是连续&#xff0c;且特点支持快速访问&#xff0c;但是插入和删除效率比较地(需要找查找和移动)。另…...

Docker compose 使用 --force-recreate --no-recreate 控制重启容器时的行为

一、--force-recreate 作用 强制重新创建指定的服务&#xff0c;即使服务的配置未发生任何变化。忽略现有容器的状态&#xff0c;无论容器是停止、运行还是有无变化&#xff0c;都会销毁并重新创建。 用法 docker compose up -d --force-recreate [services...]不指定服务&…...

【pycharm】远程部署失败,查看日志

pycharm 远程部署失败,查看日志 远程一直失败,gateway超时会还知道拉取一份日志: 在./root 下 发现了崩溃日志,启动崩溃了,导致backend一直无法启动。win11就是一直在connect到ubuntu的后端pycharm。。gateway 拉取的日志 我上传的linux版本的pycharm暂时存在dist目录下,…...

FilmMusic

电影推荐 《五朵金花》《沉睡魔咒》《三国之见龙卸甲》《灰姑娘》《正义联盟》《沉睡魔咒2》 《神奇女侠》《神奇女侠》HD中字在线观看 - 影视天堂 《野性的呼唤》《野性的呼唤2020》HD中字在线观看 - 影视天堂 《毒液2》《小马王》《秦时明月之百步飞剑》《秦时明月之夜尽…...

使用 Python 实现自动化办公(邮件、Excel)

目录 一、Python 自动化办公的准备工作 1.1 安装必要的库 1.2 设置邮件服务 二、邮件自动化处理 2.1 发送邮件 示例代码 注意事项 2.2 接收和读取邮件 示例代码 三、Excel 自动化处理 3.1 读取和写入 Excel 文件 示例代码 3.2 数据处理和分析 示例代码 四、综合…...

稀疏编码 (Sparse Coding) 算法详解与PyTorch实现

稀疏编码 (Sparse Coding) 算法详解与PyTorch实现 目录 稀疏编码 (Sparse Coding) 算法详解与PyTorch实现1. 稀疏编码 (Sparse Coding) 算法概述1.1 稀疏表示1.2 稀疏编码的优势2. 稀疏编码的核心技术2.1 稀疏编码的目标2.2 稀疏编码的优化2.3 基向量的学习3. PyTorch实现稀疏编…...

基于springboot的疫情网课管理系统

作者&#xff1a;学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”&#xff0c;支持远程部署调试、运行安装。 项目包含&#xff1a; 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…...

Cookie和Session

会话&#xff1a; 有状态会话&#xff1a; 客户端知道发起请求的是谁 无状态会话&#xff1a; 不知道发起请求的是谁 只知道有请求 http是无状态请求 保存会话信息的两种技术&#xff1a; 可以通过Cookie和Session储存会话信息 cookie&#xff1a;客户端技术 信心存…...

分布式ID—雪花算法

背景 现在的服务基本是分布式、微服务形式的&#xff0c;而且大数据量也导致分库分表的产生&#xff0c;对于水平分表就需要保证表中 id 的全局唯一性。 对于 MySQL 而言&#xff0c;一个表中的主键 id 一般使用自增的方式&#xff0c;但是如果进行水平分表之后&#xff0c;多…...

【无标题】四类sql语句通用

select select a from tableA where aa1&#xff1a; 总是丢掉from。。 运算&#xff1a; select a*3 b from tableA&#xff1b; 使用()来定义运算优先级。 别名 select a as xx from tableA&#xff1b;可以不加as&#xff0c;仅为增加可读性。 别名不可以中间有空格&…...