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

C++ string类详解

⭐️ string

string 是表示字符串的字符串类,该类的接口与常规容器的接口基本一致,还有一些额外的操作 string 的常规操作,在使用 string 类时,需要使用 #include <string> 以及 using namespace std;

帮助文档:https://cplusplus.com/reference/string/string/string/

🌟 std::string::string 构造函数(constructor)

序号构造函数功能
1️⃣string()默认拷贝:构造空的string类对象,即空字符串,默认第一个字符位置是'\0',为了兼容c
2️⃣string(const string& str)拷贝构造
3️⃣string(const string& str , size_t pos , size_t len = npos)拷贝构造的重载,从字符串 pos 位置开始拷贝,拷贝 len 个字符
4️⃣string(const char * s)使用 c_string 来初始化 string 类对象
5️⃣string(const char * s , size_t n)s 指向的字符串中复制前 n 个字符
6️⃣string(size_t n , char c)使用 nc 字符来填充字符串
7️⃣template <class InputIterator> string (InputIterator first , InputIterator last)复制一个迭代器序列的字符串 [first , last)
#include <iostream>
#include <string>
using namespace std;int main() {string s1;	// 默认构造 第一个字符是 `\0`cout << s1 << endl;/*调用构造本身的写法应该是:string s2("hello world");但是为什么可以这样写呢? string s2 = "hello world";因为当构造函数是单参的时候,是支持隐式类型转换的。这里本质上先构造再拷贝构造,但是编译器通常会优化为直接构造。若不希望隐式类型的转换可以在构造函数前添加 explicit 关键字*/string s2 = "hello world"; // 使用c字符串构造一个string类对象cout << s2 << endl;string s3(s2);	// 拷贝构造cout << s3 << endl;string s4(s3, 6, 5);  // 拷贝构造的重载 从下标6位置开始拷贝 拷贝5个字符cout << s4 << endl;string s5("hello" , 3); // 拷贝 `hello` 前3个字符cout << s5 << endl;string s6(10 , 'a'); // 使用 10个 `a` 填充对象cout << s6 << endl;string s7(s6.begin() , s6.end()); // 迭代器序列初始化cout << s7 << endl;return 0;
}

output:

在这里插入图片描述


ps: npos 原型:static const size_t npos = -1;npos 的访问:string::npos。无符号的 -1 相当于是整型的最大值,若当不传这个参数时, 或者 len 大于后面剩余字符的长度,那么使用默认参数 npos都是相当于 直到字符串的结束。[ 返回 ]

在这里插入图片描述


🌟 std::string::operator= 赋值重载

序号函数名称功能
1️⃣string& operator= (const string& str)用一个新的 string 对象替换当前 string 对象的内容
2️⃣string& operator= (const char * s)用一个c的字符串替换当前 string 对象内容
3️⃣string& operator= (char c)使用一个字符替换当前 string 对象的内容
#include <iostream>
#include <string>
using namespace std;int main() {string s1 = "hello world";
// 1.string temp = "ccc";s1 = temp;cout << s1 << endl;
// 2.s1 = "hhhh";cout << s1 << endl;
// 3.s1 = 'a';cout << s1 << endl;return 0;
}

output:

在这里插入图片描述


🌟 元素的访问

序号函数名称功能
1️⃣char& operator[] (size_t pos)返回当前 string 对象中 pos 位置字符的引用
2️⃣const char& operator[](size_t pos) const返回当前 const string 对象中 pos 位置字符的引用
3️⃣char& at (size_t pos)返回当前 string 对象中 pos 位置字符的引用
4️⃣const char& at (size_t pos) const返回当前 const string 对象中 pos 位置字符的引用
5️⃣char& back()返回当前 string 对象最后一个字符的引用
6️⃣const char& back() const返回当前 const string 对象最后一个字符的引用
7️⃣char& front()返回当前 string 对象第一个字符的引用
8️⃣const char& front() const返回当前 const string 对象第一个字符的引用

ps: at[] 的行为是一样的,函数都会检查 pos 是否是合法位置,若不是,[] 是断言错误,而 at 是抛异常。

ps: back == [xx.size() - 1]front == [0]

#include <iostream>
#include <string>
using namespace std;int main() {const string s1 = "hello";for (size_t i = 0; i < s1.size(); i++) {cout << s1[i] << " ";}cout << endl;string s2 = "world";for (size_t i = 0; i < s2.size(); i++) {s2[i]++;cout << s2[i] << " ";}cout << endl;string s3 = "hello world";cout << s3.back() << s3[s3.size() - 1] << endl;cout << s3.front() << s3[0] << endl;cout << s3.at(4) << endl;return 0;
}

output:

在这里插入图片描述


🌟 元素的长度

序号函数名称功能
1️⃣size_t size() const返回 string 对象实际字符的长度
2️⃣size_t length() const返回 string 对象实际字符的长度
#include <iostream>
#include <string>
using namespace std;int main() {string s = "hello world";cout << s.size() << endl;	// 11cout << s.length() << endl;	// 11return 0;
}

🌟 string 迭代器

序号函数名称功能
1️⃣iterator begin()返回一个迭代器,该迭代器指向 string 对象的第一个字符
2️⃣const_iterator begin() const返回一个迭代器,该迭代器指向 const string 对象的第一个字符
3️⃣iterator end()返回一个迭代器,该迭代器指向 string 对象最后一个实际字符的下一个位置
4️⃣const_iterator end() const返回一个迭代器,该迭代器指向 const string 对象最后一个实际字符的下一个位置
5️⃣reverse_iterator rbegin()返回一个反向迭代器,该迭代器指向 string 对象最后一个实际字符的位置
6️⃣const_reverse_iterator rbegin() const返回一个反向迭代器,该迭代器指向 const string 对象最后一个实际字符的位置
7️⃣reverse_iterator() rend()返回一个反向迭代器,该迭代器指向 string 对象第一个字符的前一个位置
8️⃣const_reverse_iterator() rend() const返回一个反向迭代器,该迭代器指向 const string 对象第一个字符的前一个位置

ps: [ begin() , end() )( rend() , rbegin() ]

#include <iostream>
#include <string>
using namespace std;int main() {string s = "hello world";for (string::iterator it = s.begin(); it != s.end(); it++) {cout << *it << " ";}// output: h e l l o   w o r l dcout << endl;// 自动迭代 自动判断结束// 范围for 本质上调用的也是迭代器for (auto val : s) {cout << val << " ";}// output: h e l l o   w o r l dcout << endl;for (string::reverse_iterator it = s.rbegin(); it != s.rend(); it++) {cout << *it << " ";}// output: d l r o w   o l l e hcout << endl;// const const string s2 = "nihao";string::const_iterator it = s2.begin();while (it != s2.end()) {cout << *it << " ";it++;}// output: n i h a ocout << endl;string::const_reverse_iterator rit = s2.rbegin();while (rit != s2.rend()) {cout << *rit << " ";rit++;}// output: o a h i nreturn 0;
}

output:

在这里插入图片描述


🌟 string 对象修改

序号函数名称功能
1️⃣void push_back (char c)在当前 string 对象的末尾追加一个 c 字符
2️⃣string& append (const string& str)在当前 string 对象的末尾追加一个 const string str 对象
3️⃣string& append (const string& str , size_t subpos , size_t sublen)在当前 string 对象的末尾追加一个 const string str 对象的子串,从 subpos 位置开始,拷贝 sublen 个字符过去
类似上面构造函数的 npos 用法
4️⃣string& append (const char* s);在当前 string 对象的末尾追加一个 c_string 字符串
5️⃣template <class InputIterator> string& append (InputIterator first , InputIterator last) 追加一个迭代器序列的字符串 [first , last)
#include <iostream>
#include <string>
using namespace std;int main() {string s = "hello";s.push_back('-');cout << s << endl;s = "hello";string temp = " world";s.append(temp);cout << s << endl;string s2 = "hello";string temp2 = " world";s2.append(temp2 , 0 , 3);cout << s2 << endl;string s3 = "hello";s3.append(" world");cout << s3 << endl;string s4 = "hello";s4.append(s4.begin(), s4.end());cout << s4 << endl;string s5 = "hello";s5.append(s5.rbegin() , s5.rend());cout << s5 << endl;return 0;
}

output:

在这里插入图片描述


std::string::operator+= 运算符重载

序号函数名称功能
6️⃣string& operator+= (const string& str);在当前 string 对象的末尾追加一个 const string str 对象
7️⃣string& operator+= (const char* s);在当前 string 对象的末尾追加一个 c_string 字符串
8️⃣string& operator+= (char c);在当前 string 对象的末尾追加一个 c 字符
#include <iostream>
#include <string>
using namespace std;int main() {string s = "he";s += 'l';s += 'l';s += "o ";string temp = "world";s += temp;cout << s << endl;// output: hello worldreturn 0;
}

🌟 元素的容量

序号函数名称功能
1️⃣size_t capacity() const返回当前 string 对象的容量大小
2️⃣void reserve (size_t n = 0)改变当前 string 对象的容量为 n
3️⃣void resize (size_t n)将当前 string 对象的 size() 调整为 n 并初始化为 '\0'
4️⃣void resize (size_t n , char c)将当前 string 对象的 size() 调整为 n 并初始化为 c
5️⃣void clear();删除当前 string 对象的所有内容,size() = 0
6️⃣bool empty() const若当前 string 对象为空返回 true,否则返回 false

ps: reserve 是改变容量,而 resize 是改变 size() + 初始化,resizen 传的比 string 的大小还小,则就是删除。

#include <iostream>
#include <string>
using namespace std;int main() {string s = "hello";cout << s.capacity() << endl;s.reserve(100);cout << s.capacity() << endl;cout << s.size() << endl; // 5string s2 = "hello world";s2.resize(5);cout << s2.size() << endl;	// 100cout << s2 << endl;s2.clear();cout << s2.empty() << endl;return 0;
}

output:

在这里插入图片描述


🌟 std::string::insert 插入

在这里插入图片描述


ps: 需要的查文档即可,效率不高很少用。

🌟 std::string::erase 删除

在这里插入图片描述


🌟 std::string::c_str 返回c的字符串

序号函数名称功能
1️⃣const char* c_str() const返回c的字符串使用 '\0' 结尾

🌟 查找

序号函数名称功能
1️⃣size_t find (char c , size_t pos = 0) const从当前 string 对象的 pos 位置开始查找 c 字符,返回这个字符第一次出现的位置,否则返回 string::npos
2️⃣string substr (size_t pos = 0 , size_t len = npos) const返回当前对象 pos 位置开始的 len 个字符的子串
#include <iostream>
#include <string>
using namespace std;int main() {string s = "hello world";size_t res = s.find('w' , 0);if (res != string::npos) {cout << s.substr(res) << endl;	// world}return 0;
}
序号函数名称功能
3️⃣size_t rfind (char c , size_t pos = npos) const从当前 string 对象的 pos 位置从后向前开始查找 c 字符,返回这个字符最后一次出现的位置,否则返回 string::npos

🌟 其他

序号函数名称功能
1️⃣istream& getline (istream& is , string& str , char delim)输入一行字符遇到 delim 终止
2️⃣istream& getline (istream& is , string& str)输入一行字符遇到 \n 终止
3️⃣string to_string (int val)返回一个 valstring 对象
4️⃣int stoi (const string& str, size_t* idx = 0, int base = 10)字符串转整数。 idx 通常都为 nullptrbase 代表进制

ps: to_string 支持的转换类型

在这里插入图片描述


ps: string 可以转换为的类型

在这里插入图片描述


#include <iostream>
#include <string>
using namespace std;int main() {int val = 10;string s_val = to_string(val);cout << s_val << endl;	 // 10val = stoi(s_val);cout << val << endl;	// 10return 0;
}

相关文章:

C++ string类详解

⭐️ string string 是表示字符串的字符串类&#xff0c;该类的接口与常规容器的接口基本一致&#xff0c;还有一些额外的操作 string 的常规操作&#xff0c;在使用 string 类时&#xff0c;需要使用 #include <string> 以及 using namespace std;。 ✨ 帮助文档&…...

深入浅出Pytorch函数——torch.nn.init.ones_

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

一、docker及mysql基本语法

文章目录 一、docker相关命令二、mysql相关命令 一、docker相关命令 &#xff08;1&#xff09;拉取镜像&#xff1a;docker pull <镜像ID/image> &#xff08;2&#xff09;查看当前docker中的镜像&#xff1a;docker images &#xff08;3&#xff09;删除镜像&#x…...

【计算机网络】13、ARP 包:广播自己的 mac 地址和 ip

机器启动时&#xff0c;会向外广播自己的 mac 地址和 ip 地址&#xff0c;这个即称为 arp 协议。范围是未经过路由器的部分&#xff0c;如下图的蓝色部分&#xff0c;范围内的设备都会在本地记录 mac 和 ip 的绑定信息&#xff0c;若有重复则覆盖更新&#xff08;例如先收到 ma…...

通过微软Azure调用GPT的接口API-兼容平替OpenAI官方的注意事项

众所周知&#xff0c;我们是访问不通OpenAI官方服务的&#xff0c;但是我们可以自己通过代理或者使用第三方代理访问接口 现在新出台的规定禁止使用境外的AI大模型接口对境内客户使用&#xff0c;所以我们需要使用国内的大模型接口 国内的效果真的很差&#xff0c;现在如果想使…...

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍程序设计…...

GAN!生成对抗网络GAN全维度介绍与实战

目录 一、引言1.1 生成对抗网络简介1.2 应用领域概览1.3 GAN的重要性 二、理论基础2.1 生成对抗网络的工作原理2.1.1 生成器生成过程 2.1.2 判别器判别过程 2.1.3 训练过程训练代码示例 2.1.4 平衡与收敛 2.2 数学背景2.2.1 损失函数生成器损失判别器损失 2.2.2 优化方法优化代…...

自动驾驶仿真:基于Carsim开发的加速度请求模型

文章目录 前言一、加速度输出变量问题澄清二、配置Carsim动力学模型三、配置Carsim驾驶员模型四、添加VS Command代码五、Run Control联合仿真六、加速度模型效果验证 前言 1、自动驾驶行业中&#xff0c;算法端对于纵向控制的功能预留接口基本都是加速度&#xff0c;我们需要…...

.netcore grpc客户端工厂及依赖注入使用

一、客户端工厂概述 gRPC 与 HttpClientFactory 的集成提供了一种创建 gRPC 客户端的集中方式。可以通过依赖包Grpc.Net.ClientFactory中的AddGrpcClient进行gRPC客户端依赖注入AddGrpcClient函数提供了许多配置项用于处理一些其他事项&#xff1b;例如AOP、重试策略等 二、案…...

C语言入门_Day7 逻辑运算

目录&#xff1a; 前言 1.逻辑运算 2.优先级 3.易错点 4.思维导图 前言 算术运算用来进行数据的计算和处理&#xff1b;比较运算是用来比较不同的数据&#xff0c;进而来决定下一步怎么做&#xff1b;除此以外还有一种运算叫做逻辑运算&#xff0c;它的应用场景也是用来影…...

什么是Eureka?以及Eureka注册服务的搭建

导包 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 htt…...

Docker安装并配置镜像加速器,镜像、容器的基本操作

目录 1.安装docker服务&#xff0c;配置镜像加速器 &#xff08;1&#xff09;安装依赖的软件包 &#xff08;2&#xff09;设置yum源&#xff0c;我配置的阿里仓库 &#xff08;3&#xff09;选择一个版本安装 &#xff08;4&#xff09;启动docker服务&#xff0c;并设置…...

前端 -- 基础 网页、HTML、 WEB标准 扫盲详解

什么是网页 : 网页是构成网站的基本元素&#xff0c;它通常由 图片、链接、文字、声音、视频等元素组成。 通常我们看到的网页 &#xff0c;常见以 .html 或 .htm 后缀结尾的文件&#xff0c; 因此俗称 HTML 文件 什么是 HTML : HTML 指的是 超文本标记语言&#xff0c…...

分布式锁实现方式

分布式锁 1 分布式锁介绍 1.1 什么是分布式 一个大型的系统往往被分为几个子系统来做&#xff0c;一个子系统可以部署在一台机器的多个 JVM(java虚拟机) 上&#xff0c;也可以部署在多台机器上。但是每一个系统不是独立的&#xff0c;不是完全独立的。需要相互通信&#xff…...

C语言小练习(一)

&#x1f31e; “人生是用来体验的&#xff0c;不是用来绎示完美的&#xff0c;接受迟钝和平庸&#xff0c;允许出错&#xff0c;允许自己偶尔断电&#xff0c;带着遗憾&#xff0c;拼命绽放&#xff0c;这是与自己达成和解的唯一办法。放下焦虑&#xff0c;和不完美的自己和解…...

Flask-flask系统运行后台轮询线程

对于有些flask系统&#xff0c;后台需要启动轮询线程&#xff0c;执行特定的任务&#xff0c;以下是一个简单的例子。 globals/daemon.py import threading from app.executor.ops_service import find_and_run_ops_task_todo_in_redisdef context_run_func(app, func):with …...

jsp本质-servlet

jsp本质-servlet 一、jsp文件 <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>JSP Example…...

回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现GWO-SVM灰狼优化算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基…...

科技资讯|苹果Vision Pro新专利曝光:可调节液态透镜

苹果公司近日申请了名为“带液态镜头的电子设备”&#xff0c;概述了未来可能的头显设计。头显设备中的透镜采用可调节的液态透镜&#xff0c;每个透镜可以具有填充有液体的透镜腔&#xff0c;透镜室可以具有形成光学透镜表面的刚性和 / 或柔性壁。 包括苹果自家的 Vision Pr…...

神经网络基础-神经网络补充概念-38-归一化输入

概念 归一化输入是一种常见的数据预处理技术&#xff0c;旨在将不同特征的取值范围映射到相似的尺度&#xff0c;从而帮助优化机器学习模型的训练过程。归一化可以提高模型的收敛速度、稳定性和泛化能力&#xff0c;减少模型受到不同特征尺度影响的情况。 常见的归一化方法 …...

【Redis】什么是缓存雪崩,如何预防缓存雪崩?

【Redis】什么是缓存雪崩&#xff0c;如何预防缓存雪崩&#xff1f; 如果缓存集中在一段时间内失效&#xff0c;也就是通常所说的热点数据集中失效 &#xff08;一般都会给缓存设定一个失效时间&#xff0c;过了失效时间后&#xff0c;该数据库会被缓存直接删除&#xff0c;从…...

[国产MCU]-W801开发实例-开发环境搭建

W801开发环境搭建 文章目录 W801开发环境搭建1、W801芯片介绍2、W801芯片特性3、W801芯片结构4、开发环境搭建1、W801芯片介绍 W801芯片是联盛德微电子推出的一款高性价比物联网芯片。 W801 芯片是一款安全 IoT Wi-Fi/蓝牙 双模 SoC芯片。芯片提供丰富的数字功能接口。支持2.…...

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测。基于分位…...

改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)

改善神经网络——优化算法 梯度下降Mini-batch 梯度下降&#xff08;Mini-batch Gradient Descent&#xff09;指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快&#xff0c;机器学习的应用是一个高度依赖经验的过程&#xff0c;伴随着大量…...

大数据面试题:Spark的任务执行流程

面试题来源&#xff1a; 《大数据面试题 V4.0》 大数据面试题V3.0&#xff0c;523道题&#xff0c;679页&#xff0c;46w字 可回答&#xff1a;1&#xff09;Spark的工作流程&#xff1f;2&#xff09;Spark的调度流程&#xff1b;3&#xff09;Spark的任务调度原理&#xf…...

通过 Amazon SageMaker JumpStart 部署 Llama 2 快速构建专属 LLM 应用

来自 Meta 的 Llama 2 基础模型现已在 Amazon SageMaker JumpStart 中提供。我们可以通过使用 Amazon SageMaker JumpStart 快速部署 Llama 2 模型&#xff0c;并且结合开源 UI 工具 Gradio 打造专属 LLM 应用。 Llama 2 简介 Llama 2 是使用优化的 Transformer 架构的自回归语…...

ansible远程执行命令

一、ansible简介 需要在一台机器上搭建ansible环境&#xff0c;且配置目的ip的密码&#xff0c;通道没有问题即可下发命令 使用的通道是ssh&#xff08;端口&#xff1a;36000&#xff09; 二、搭建细节 1、安装ansible yum install -y ansible 2、把目的ip密码写到配置…...

Windows快速恢复丢失的颜色校准

场景 有时开机或启动某个软件后&#xff0c;颜色校准&#xff08;设置项&#xff1a;校准显示器颜色&#xff09;会丢失&#xff0c;每次重新设置很麻烦。 文章首发及后续更新&#xff1a;https://mwhls.top/4723.html&#xff0c;无图/无目录/格式错误/更多相关请至首发页查看…...

Vue安装单文件组件

安装 npm npm 全称为 Node Package Manager&#xff0c;是一个基于Node.js的包管理器&#xff0c;也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。 npm -v由于网络原因 安装 cnpm npm install -g cnpm --registryhttps://registry.npm.taobao.org安装 vue-cli…...

小白的Node.js学习笔记大全---不定期更新

Node.js是什么 Node. js 是一个基于 Chrome v8 引擎的服务器端 JavaScript 运行环境Node. js 是一个事件驱动、非阻塞式I/O 的模型&#xff0c;轻量而又高效Node. js 的包管理器 npm 是全球最大的开源库生态系统 特性 单一线程 Node.js 沿用了 JavaScript 单一线程的执行特…...

第二周晨考自测(2.0)

1.冒泡排序 冒泡排序是数组解构中的常见排序算法之一。规则如下&#xff1a;先遍历数组&#xff0c;让相邻的两个数据进行比较&#xff0c;如果前一个比后一个大&#xff0c;那么就把这两个数据交换位置&#xff0c;经过一轮遍历之后&#xff0c;最大的那个数字就排在数组最后…...

计算机视觉之三维重建(三)(单视图测量)

2D变换 等距变换 旋转平移保留形状、面积通常描述刚性物体运动 相似变换 在等距变换的基础增加缩放特点 射影变换 共线性、四共线点的交比保持不变 仿射变换 面积比值、平行关系等不变仿射变换是特殊的射影变换 影消点与影消线 2D无穷远点 两直线的交点可由两直线的…...

docker 批量快速删除容器和镜像

一、批量删除镜像 如果你想要批量删除 Docker 镜像,可以使用各种命令。以下是一些示例: 1. 删除所有镜像: docker rmi $(docker images -q) 2. 删除所有未标记的镜像(即 <none> 镜像): docker rmi $(docker images -f "dangling=true" -q) 请注意…...

【数据分析入门】Matplotlib

目录 零、图形解析与工作流0.1 图形解析0.2 工作流 一、准备数据1.1 一维数据1.2 二维数据或图片 二、绘制图形2.1 画布2.2 坐标轴 三、绘图例程3.1 一维数据3.2 向量场3.3 数据分布3.4 二维数据或图片 四、自定义图形4.1 颜色、色条与色彩表4.2 标记4.3 线型4.4 文本与标注4.5…...

mongodb.使用自带命令工具导出导入数据

在一次数据更新中&#xff0c;同事把老数据进行了清空操作&#xff0c;但是新的逻辑数据由于某种原因&#xff08;好像是她的电脑中病毒了&#xff09;&#xff0c;一直无法正常连接数据库进行数据插入&#xff0c;然后下午2点左右要给甲方演示&#xff0c;所以要紧急恢复本地的…...

IndexError: tensors used as indices must be long, byte or bool tensors

运行出现报错。修改数据格式 输出sample_ids的值&#xff0c;可以看到数据类型是 torch.int32 解决 需要将sample_ids类型转为long&#xff0c;修改方式&#xff1a; idx idx.type(torch.long)或 idx self.tensor(idx, dtypetorch.long)参考&#xff1a; IndexError: tenso…...

设计模式 : 单例模式笔记

文章目录 一.单例模式二.单例模式的两种实现方式饿汉模式懒汉模式 一.单例模式 一个类只能创建一个对象,这样的类的设计模式就称为单例模式,该模式保证系统中该类只能有一个实例(并且父子进程共享),一个很典型的单例类就是CSTL的内存池C单例模式的基本设计思路: 私有化构造函数…...

深度优先搜索算法

目录 4.1 二叉树的最大深度&#xff08;简单&#xff09;&#xff1a;深度优先搜索 4.2 对称二叉树&#xff08;简单&#xff09;&#xff1a;递归 4.3 岛屿数量&#xff08;中等&#xff09;&#xff1a;深度优先搜索 4.4 岛屿的最大面积&#xff08;中等&#xff09;&…...

k8s ----POD控制器详解

目录 一&#xff1a;pod控制器 1、Pod控制器及其功用 2、pod控制器类型 3、Pod与控制器之间的关系 二&#xff1a;Deployment 三&#xff1a;SatefulSet 1、StatefulSet组成 2、为什么要有headless&#xff1f; 3、为什么要有volumeClaimTemplate&#xff1f; 4、实现…...

ReactNative进阶(三十四):ipa Archive 阶段报错error: Multiple commands produce问题修复及思考

文章目录 一、前言二、问题描述三、问题解决四、拓展阅读五、拓展阅读 一、前言 在应用RN开发跨平台APP阶段&#xff0c;从git中拉取项目&#xff0c;应用Jenkins进行组包时&#xff0c;发现最终生成的ipa安装包版本号始终与项目中设置的版本号不一致。 二、问题描述 经过仔…...

MySQL索引ES索引

MySQL MySQL索引的种类 按照索引列值的唯一性:索引可分为唯一索引和非唯一索引; 唯一索引:此索引的每一个索引值只对应唯一的数据记录,对于单列唯一性索引,这保证单列不包含重复的值。对于多列唯一性索引,保证多个值的组合不重复。主键索引是唯一索引的特定类型。该索引…...

webSocket 聊天室 node.js 版

全局安装vue脚手架 npm install vue/cli -g 创建 vue3 ts 脚手架 vue create vue3-chatroom 后端代码 src 同级目录下建 server: const express require(express); const app express(); const http require(http); const server http.createServer(app);const io req…...

iptables防火墙(SNAT与DNAT)

目录 1 SNAT 1.1 SNAT原理与应用 1.2 SNAT工作原理 1.3 SNAT转换前提条件 2 SNAT示例 ​编辑 2.1 网关服务器配置 2.1.1 网关服务器配置网卡 2.1.2 开启SNAT命令 2.2 内网服务器端配置 2.3 外网服务器端配置 2.4 网卡服务器端添加规则 2.5 SNAT 测试 3 DNAT 3.1 网卡…...

第 359 场 LeetCode 周赛题解

A 判别首字母缩略词 签到题… class Solution { public:bool isAcronym(vector<string> &words, string s) {string pf;for (auto &s: words)pf.push_back(s[0]);return pf s;} };B k-avoiding 数组的最小总和 贪心&#xff1a;从 1 1 1开始升序枚举&#xff0c…...

【开源项目】Stream-Query的入门使用和原理分析

前言 无意间发现了一个有趣的项目&#xff0c;Stream-Query。了解了一下其基本的功能&#xff0c;可以帮助开发者省去Mapper的编写。在开发中&#xff0c;我们会编写entity和mapper来完成业务代码&#xff0c;但是Stream-Query可以省去mapper&#xff0c;只写entity。 快速入…...

微信小程序picker组件的简单使用 单选

<picker mode"selector" range"{{classData}}" bindchange"bindClassChange" value"{{classIndex}}" range-key"className"><view class"picker">{{classData[classIndex].className || 请选择班级}}…...

python、numpy、pytorch中的浅拷贝和深拷贝

1、Python中的浅拷贝和深拷贝 import copya [1, 2, 3, 4, [11, 22, 33, [111, 222]]] b a c a.copy() d copy.deepcopy(a)print(before modify\r\n a\r\n, a, \r\n,b a\r\n, b, \r\n,c a.copy()\r\n, c, \r\n,d copy.deepcopy(a)\r\n, d, \r\n)before modify a [1, 2…...

EasyRecovery14数据恢复软件支持各类存储设备的数据恢复

EasyRecovery14数据恢复软件专业数据恢复软件支持电脑、相机、移动硬盘、U盘、SD卡、内存卡、光盘、本地电子邮件和 RAID 磁盘阵列等各类存储设备的数据恢复。 目前市面上有许多数据恢复软件&#xff0c;但褒贬不一&#xff0c;而且数据恢复软件又不是一款会被经常使用的软件&a…...

玩机搞机----面具模块的组成 制作模块

root面具相信很多玩家都不陌生。早期玩友大都使用第三方卡刷补丁来对系统进行各种修复和添加功能。目前面具补丁代替了这些操作。今天的帖子了解下面具各种模块的组成和几种普遍的代码组成。 Magisk中运行的每个单独的shell脚本都将在内部的BusyBox的shell中执行。对于与第三方…...

注册中心/配置管理 —— SpringCloud Consul

Consul 概述 Consul 是一个可以提供服务发现&#xff0c;健康检查&#xff0c;多数据中心&#xff0c;key/Value 存储的分布式服务框架&#xff0c;用于实现分布式系统的发现与配置。Cousul 使用 Go 语言实现&#xff0c;因此天然具有可移植性&#xff0c;安装包仅包含一个可执…...