从0开始的c++知识讲解之字符串(1)
作者作为新手,对于知识的讲解也是边输出内容也是边学习,如有缺陷,请多海涵,但同样,我会帮助你从新手视角看到新手的疑惑,并帮助你解决此疑惑
一,开宗明义,立意先行
string在C++里有可变性,为可变对象,他初始化后运行修改,比如拼接,替换,重新赋值,删除中间某个字符
但是在c#和Java里面不同,里面为不可变对象,具体内容涉及那边内容
二,头文件与命名空间
头文件 :# include <string>和 # include <string.h> 和 # include <cstring> 的区别
1,# include <string.h>
(1)c语言标准库,c语言头文件,出来c风格字符串,以\0结尾的char数组
(2)提供的是c字符操作函数,如strcpy,strlen
(3) c++里面兼容可使用,但不推荐,c++有他自己的
2, # include <cstring>
(1)c++对c标准库的包装,可以理解为对标上面:# include <string.h>的兼容版,与其功能类似,但是遵循c++的命名规范,所以c++应该用这个
(2)提供strlen,strcpy函数
3,# include <string>
(1)c++标准库,用来定义面向对象的字符串类 std::string,简单说定义字符串string,就要导入这个
(2)提供length(),find(),substr()等函数
三,字符串的简单不涉及函数使用方式
(1)可通过加号拼接,之后可以组合成 s +=" 新加字符串",将原来字符与新字符拼接,s为原来字符串
(2)可以重新对字符串赋值
3.append() 追加字符串
如 s.append(" www ")
四,关于字符串的函数介绍(重点):
1,长度获取---length()与 size()
(1)c语言里面的strlen(s)对标c++里面的 s.length() 和 s.size(),s为一组字符串,他们的作用都是获取字符串长度。至于python则比较简单,为len()
c++里面的length()和 size()你可以看成完全等价关系,都返回字符串占用的字节,只是size与STL容器有关系,不用过多区分
知识补充:length()只能获得字符串长度,无法获取字符型数组长度,而size()也不行,但是只能在栈的字符型数组取长度。但是strlen()可用获取字符型数组长度。
2,删除字符内容--erase()(英文意思:v.抹去;删除)
(1)erase()函数,需要包含头文件<string>
(2)用法:对象.erase(起始下标,删除数量)
**注意:不包含起始下标,从起始下标后一个下标开始删除,如果遇到空格,也算入内会删除
输出结果:
输出结果:
输出结果:
4,指定位置插入--insert()(英文意思:插入)
(1)需要包含头文件<string>
(2)用法:被插入对象.insert(下标,想插入的字符)
* *会在要插入的下标处插入,从下标开始往后挪,插入的数据是在下标前的间隙里插入,如过下标后是空格,记住把空格也当成一个字符串,他会往后挪
输出结果:
5,反转字符串--reverse() (英文意思:v.反转;颠覆;n.相反 adj.相反的 )
(1)需包含<algorithm> 头文件(英文意思:算法)
(2)用法: reverse(对象.begin(),s.end())
** 我知道你的疑惑,对象.begin()的括号里面不能填参数,他的作用是获取字符串首个字符起始位置,如果要改变位置,要在后面加你想起始的位置:对象.begin()+n,下图可视
输出结果:
输出结果:
6,字符末尾追加单个字符--push_back()
用法: 对象.push_back( ' 要追加的单个字符 ' )
输出结果:
7.查找字符串中字符位置--find()
接收对象=目标对象.find('查找的字串') 可以查找多个字符的字符串,加上 “ ” 双引号
输出结果:
8,替换--replace()
注意:这是直接对原字符串修改
9.提取子字符串--substr() (英文意思:字符截取)
用法:接收对象 =目标对象.substr(起始点下标,提取数量,若不写默认后面全部)
六,高级字符串的操作(超重点)
引言: 需先了解一下缓冲区的概率,对于新手来说比较模糊,特别是对于我这个之前学python头脑简单,cpp知识文盲的人和我一类的人。
概括: 缓冲区就像现实世界中的「快递分拣站」,是程序与外部设备(键盘、屏幕、文件等)之间的临时数据中转站。它存在的核心目的是:减少频繁的慢速IO操作,提升效率。(意思是io是频繁的接收输入与频繁的输出)
你可能好奇为什么,把电脑想象成一个快递站点,你今天将会断断续续的收到关于一个人的一百个快递,也要将这100个快递今天送出去,你这时有两种方案,法一:收到一个送一个。法二:收到10个后再统一一起去送。
你会怎么选:
分析法一:你断断续续的收到了1个,再送出一个,持续了10次,这时快递员心里想着大概是关于m之类的不好的话,他将快递接收到站点总共跑了10,他现在还要一个一个送出去还要跑10次,每次将快递送给同一个人同一个地方
分析法二:你断断续续的收到了10个,再一起送出去10个,虽然快递员将快递接收到站点总共跑了10次,但他送快递只需要跑一次,将这10个快递送到一个人手上就行,其他时间自己就可以休息一下,这对应了电脑,接收你的输入的指令,你输入完毕了,它作为电脑会慢慢接收你输入的指令,他此时也有两种选择,①它每接收并识别到了你指令的一个字就输出一次,总共10次接收和10次输出,②或者是它每接收并识别到了你指令的十个字再输出一次,总10次接收和一次输出,而这也对应了缓冲区的存在
1,#include<iostream>讲解:
(1) iostream 全称是 input / output stream ( input 输入 output 输出 stream n,流;小溪 v.流动 )
(2)C++ 中的 iostream
是标准输入输出库的核心组件,基于流(Stream)的概念实现数据的输入输出操作。以下是其关键知识点和用法详解:
1. 头文件与标准流对象
- 头文件:
#include <iostream>
- 标准流对象:
std::cin
:标准输入流(istream
类型),通常对应键盘输入。std::cout
:标准输出流(ostream
类型),对应控制台输出。std::cerr
/std::clog
:标准错误流,cerr
无缓冲,clog
有缓冲。
2. 输入输出运算符
- 运算符重载:
<<
(插入运算符):向流中写入数据。
示例:cout << "Hello, " << 42 << endl;
>>
(提取运算符):从流中读取数据。
示例:int x; cin >> x;
- 链式调用:运算符返回流对象的引用,支持连续操作。
3. 流操纵器(Manipulators)
- 常用操纵器:
std::endl
:换行并刷新缓冲区。std::hex
/std::dec
:以十六进制/十进制格式输出。std::setw(n)
(需<iomanip>
):设置输出宽度为n
。
示例:cout << setw(5) << 10;
输出10
。
4. 类型安全与错误处理
- 类型安全:无需格式说明符(如
%d
),自动根据变量类型处理。 - 错误状态检测:
cin.fail()
:检查输入是否失败(如类型不匹配)。cin.clear()
:清除错误状态。cin.ignore()
:清空输入缓冲区。
示例:输入错误后恢复:
cin.fail()是遇到以下问题时的情况:
接收的数据类型与输入的数据类型不一样时
cin.clear()
的作用是重置输入流的状态标志,让因错误而中断的输入流恢复可用。当输入操作失败(例如用户输入了字母,但程序期望数字),输入流会进入错误状态,导致后续所有输入操作被跳过。此时必须用 clear()
重置状态,才能继续读取数据。但是此时他的错误数据被储存在了缓冲区,因为它是在缓冲区存完再识别,缓冲区并未清理干净,所有需要cin.ignore()去专门清理缓冲区,而cin.ignore()用法如下
在 C++ 中,<limits>
头文件提供了 std::numeric_limits
模板类,用于获取各种数据类型的极值(如最大值、最小值)。它是处理数值边界和流操作时的重要工具,尤其在输入输出中用于安全地控制缓冲区。 标准形式是 numeric_limits<要获取的数据类型>::里面函数
在上面代码中 numeric_limits<stream>::max() 其意思为表示在流类型里面能表示的最大的数字,即对缓冲区里面所有内容通通升天超度掉(清空)
#include <limits>
using namespace std;numeric_limits<T>::max(); // 类型 T 的最大值
numeric_limits<T>::min(); // 类型 T 的最小值(整数为最小负值,浮点为最小正值)
numeric_limits<T>::lowest(); // 类型 T 的最小值(浮点的负无穷方向)
numeric_limits<T>::epsilon(); // 浮点类型的精度(机器 epsilon)
当然,也能更简单
ignore里面第一个参数填要清空的字符串数量,第二个参数填结束位置以识别到\n换行结束
不要忽略我上面讲的 cin.fail()和 cin.clear() 和 cin.ignore()
的用法,之后你刷字符串的题目,你到时候看一些大神的解法还会回来的
2,经过上面讲解,相信你已经快领悟到字符串的秒处了,接下来,还有更重要的#include<sstream>
C++ 中的 <sstream>
头文件提供了字符串流(String Stream)功能,允许将字符串作为流来处理,实现内存中的格式化输入输出操作。它比 C 风格的 sscanf
/sprintf
更安全、更灵活,是处理字符串与数据类型转换的利器。
这对于作者来说,将这个有许多难度,之后再总结后会发在第二期 ,真的对不起
相关文章:
从0开始的c++知识讲解之字符串(1)
作者作为新手,对于知识的讲解也是边输出内容也是边学习,如有缺陷,请多海涵,但同样,我会帮助你从新手视角看到新手的疑惑,并帮助你解决此疑惑 一,开宗明义,立意先行 string在C里有可…...
Linux 第六讲 --- 工具篇(一)yum/apt与vim
前言: 经过前五讲对Linux基础指令与权限系统的系统学习,相信你已经能在命令行中自如地穿梭于文件丛林,精准调配权限密钥。但真正的Linux玩家,绝不会止步于基础操作的重复劳作。 从今天起,我们将打开Linux的"瑞士…...
xml 和 yaml 的区别
XML 和 YAML/YML 是两种常用的数据序列化格式,用于存储和读取结构化数据。以下是它们的核心区别和使用方法: 1. 格式特性对比 特性XMLYAML/YML语法复杂度标签嵌套,结构严格缩进分层,更简洁可读性较低(冗余标签&#…...
1.67g 雨晨 22635.5305 Windows 11 企业版 23H2 极速增强版
五一特别制作 (主要更新简述) 全程由最新YCDISM2025装载制作 1、可选功能: 添加: Microsoft-Windows-LanguageFeatures-Basic-en-us-Package Microsoft-Windows-LanguageFeatures-OCR-en-us-Package 2、功能增强&a…...
【C++】类和对象(中)——默认成员函数详解(万字)
文章目录 上文链接类的默认成员函数1. 构造函数(1) 什么是构造函数(2) 构造函数的使用 2. 析构函数(1) 什么是析构函数(2) 析构函数的使用(3) 小练习 3. 拷贝构造函数(1) 什么是拷贝构造函数(2) 拷贝构造函数的使用 4. 赋值运算符重载(1) 运算符重载(2) 运算符重载的简单应用(3…...
Ubuntu18 登录界面死循环 Ubuntu进不了桌面
今天碰到这个问题,真是把我恶心到了 网上很多方法都不靠谱,最后我还是自己摸索出一个方法 先进入终端 开机后在登陆界面按下shift ctrl F1(或者F2,一直按)进入tty命令行终端登陆后输入(本人的用户名为hpÿ…...
caffe适配cudnn9.6.0(ai修改代码踩坑)
caffe适配cudnn:https://github.com/dyc2424748461/caffe (测试一下,成没成,反正我看到它用gpu了😶) 因为突发奇想,想要玩easymocap,先是简单使用media跑通了一下,然后过…...
【MySQL数据库】视图
1,视图的基本介绍 视图是一个虚拟表,其内容由查询定义。与真实表一样的是,视图包含带有名称的列和行数据;与真实表不一样的是,视图本身并不在数据库中存储数据。视图的数据变化会影响到基表,基表的数据变化…...
Linux日常使用与运维的AI工具全景调研:效率革命的终极指南
Linux日常使用与运维的AI工具全景调研:效率革命的终极指南 引言:当Linux遇上AI,运维世界正在发生什么? 作为一名Linux系统管理员,你是否还在为以下问题困扰: 深夜被报警短信惊醒,却要手动排查复杂的系统故障?面对海量日志文件,像大海捞针一样寻找关键错误信息?重复…...
Linux——线程(3)线程同步
一、线程同步的引入 通过上面的抢票系统我们发现,有的线程,进行工作(挂锁),当其马上结束工作(解锁),发现外面有很多线程在排队等着加锁执行任务,这个线程解锁后就立马给…...
Redis实现分布式锁
分布式锁是分布式系统中解决资源竞争问题的重要机制。Redis凭借其高性能和原子性操作,成为实现分布式锁的热门选择。本文将详细介绍如何使用Java和Redis实现分布式锁,并重点讲解如何通过Lua脚本保证锁操作的原子性。 一、分布式锁的基本要求 一个可靠的…...
JavaScript如何实现类型判断?
判断一个数据的类型,常用的方法有以下几种: typeofinstanceofObject.prototype.toString.call(xxx) 下面来分别分析一下这三种方法各自的优缺点 typeof typeof的本意是用来判断一个数据的数据类型,所以返回的也是一个数据类型。但是会遇到下…...
Spring MVC 与 FreeMarker 整合
以下是 Spring MVC 与 FreeMarker 整合的详细步骤,包含配置和代码示例: 1. 添加依赖 在 pom.xml 中引入 Spring MVC 和 FreeMarker 的依赖(以 Maven 为例): <!-- Spring Web MVC --> <dependency><gr…...
设计模式简述(十五)观察者模式
观察者模式 描述基本组件使用 描述 观察者模式,顾名思义就是一个对象观察着其他对象,一旦被观察的对象发生变化时,观察者对象也要做出相应动作。 其中,被观察者持有观察者的引用。由观察者主动注入被观察者内(有点像…...
用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]
目录 前言一、现实场景1.1 手机相册的照片管理1.2 照片分类的需求 二、技术映射2.1 数组与照片分类的对应关系2.2 数组索引与照片标签的类比 三、知识点呈现3.1 数组的基本概念3.2 数组在编程中的重要性3.3 数组的定义与初始化3.4 数组的常见操作(增删改查ÿ…...
字符串格式漏洞-[第五空间2019 决赛]PWN5
之前其实也写了一篇,现在再来看。又有新的收获了,于是记录一下 前置知识 格式化字符串漏洞详解-CSDN博客 讲得很清楚,我就不照猫画虎了 实践 main函数 首先先办法泄露我们输入的地址 from pwn import * elfpathlevel0 # ioprocess(elfp…...
数据结构学习之顺序表
在C语言学习到一定阶段之后,接下来我们就进入到了数据结构的部分内容。 目录 数据结构与线性表 顺序表 顺序表分类: 接下来我们要写一段代码实现动态顺序表。 首先我们需要准备三个文件: 1.接下来我们要定义一个数据表 2.当创建号我们的…...
AWS CloudFront全球加速利器:解析出海业务的核心优势与最佳实践
对于寻求全球化发展的企业而言,AWS CloudFront凭借其强大的全球基础设施和边缘计算能力,成为加速出海业务的关键工具。本文将深入剖析CloudFront的核心优势,并探讨其如何助力企业突破跨境业务瓶颈,同时符合SEO优化策略,…...
Flowable7.x学习笔记(十六)分页查询我的待办
前言 我的待办具体区分为3种情况,第一个就是办理人指定就是我,我可以直接审批;第二种就是我是候选人,我需要先拾取任务然后再办理;第三种是我是候选组,我需要切换到指定的角色去拾取任务再办理。如果任务已…...
Annotate better with CVAT
WIN10 配置标注环境 WSL + Docker Desktop 安装手册 https://docs.cvat.ai/docs/administration/basics/installation/ hebing@hello:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE cvat/ui …...
QML Image 组件详解
目录 引言相关阅读QML Image元素基础知识 项目结构示例解析1. 本地资源图像加载2. 网络图像加载3. 图像填充模式 应用主结构 总结下载链接 引言 本文将介绍QML中Image元素的基本用法和关键特性,包括加载本地资源图像、处理网络图像、以及调整图像的填充模式。通过一…...
BOFZ 緩衝區溢出shell脚本檢測工具
地址:https://github.com/MartinxMax/bofz BOFZ BOFZ 是一款簡單的緩衝區溢出掃描器,旨在檢測指定可執行文件中的緩衝區溢出漏洞。 此工具可用於快速測試應用程序或二進制文件中是否存在常見的安全缺陷,特別是那些由於對用戶輸入處理時邊界檢查不當而引…...
【Dify系列教程重置精品版】第五章:Dify配置Ollama
上一章我们在Dify上尝试配置了“月之暗面”。这一章我们在Dify上配置另一个模型“Ollama”。 什么是ollama呢?简单来说:它允许用户在个人计算机或服务器上快速部署和管理多种开源大语言模型,如 Llama3、Phi3、Gemma2 等,而无需依赖昂贵的云服务或专业的技术背景。 反正就是…...
RISC-V AIA SPEC学习(四)
第五章 Interrupts for Machine andSupervisor Levels 核心内容 1.主要中断类型与默认优先级: 定义了机器级别(M-level)和监管者级别(S-level)的标准中断类型(如MEI、SEI、MTI等)。默认优先级规则:本地中断(如软件/定时器)优先级高于外部中断,RAS事件(如低/高…...
Leetcode刷题报告2——双指针法
文章目录 前言[15. 三数之和](https://leetcode.cn/problems/3sum/)题干题解知识点总结 [42. 接雨水](https://leetcode.cn/problems/trapping-rain-water/)题干题解 前言 这部分总共是4道题,我就挑两道比较典型的题写一下博客吧。 双指针法的核心思路是通过合理的…...
线段树原理和代码详解
目录 线段树维护的信息类型 线段树的结构 线段树的初始化 线段树的功能: 单点修改,区间查询 区间修改,区间查询 以下内容均为个人见解,如有不足还请指出,作者会及时修改! 期待大家的点赞、收藏、评论&…...
xray-poc编写示例
禁止未授权扫描和测试行为!!! 1. SQL 时间盲注检测 (Time-Based Blind SQLi) name: generic/time-based-sqli rules:- method: GETpath: "/product?id1 AND (SELECT 1 FROM (SELECT SLEEP(5))a)--"expression: |response.status…...
[2-01-01].前端开发工具
前端学习大纲 一、VsCode: 1.1、下载地址 https://code.visualstudio.com/ 1.2.插件安装 为方便后续开发,建议安装如下插件 1.3.创建项目 先创建一个空的文件夹,如project_xxxx。然后打开vscode,再在vscode里面选择 File -> Open Fol…...
自动化实现web端Google SignUp——selenium
案例:自动化获取Google注册页面——selenium 前言 提示:通过案例掌握selenium语法 涉及技术:Python Selenium 在本文中,我们将通过一个实际案例来学习如何使用Selenium自动化工具模拟Google账号注册流程。这个案例涵盖了Selen…...
如何阅读GitHub上的深度学习项目
一、前期准备:构建知识基础 1. 必备工具与环境 开发工具: IDE:VS Code(推荐,轻量化插件丰富,如 Python、PyTorch 插件)、PyCharm(适合大型项目)。版本控制:…...
【LeetCode 热题 100】3.无重复字符的最长子串:详解滑动窗口解法
📌 原题链接:Longest Substring Without Repeating Characters 📖 一、题目描述 给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。 示例: 输入: s "abcabcbb" 输出: 3 解释: 最长不重复子…...
Android12 Rom定制设置默认语言为中文
Android12 Rom定制设置默认语言为中文 1.前言: 最近在做客制化定制时需要默认语言为中文,而且可以切换输入法,之前讲解过在ROM中如何设置默认输入法,这里就不展开了,其实这个需求很简单,就是调试的时候发现…...
【设计模式】GoF设计模式之备忘录模式(Memento Pattern)
设计模式之备忘录模式 Memento Pattern V1.0核心概念角色代码示例程序运行结果代码讲解 适用场景 V1.0 核心概念 备忘录模式的核心是定义一个备忘录类(Memento),这个类的实例能够表示发起人类(Originator)的一种状态…...
springboot分层打包,减少重复构建和传输的开销
在 Spring Boot 中,分层打包(Layered Packaging) 是一种优化策略,特别针对 容器化部署(如 Docker) 的场景设计。它的核心思想是将应用的不同部分(依赖、资源、代码等)划分为独立的层…...
Linux——虚拟地址空间
1.虚拟地址空间 进程地址空间又叫虚拟地址空间 我们大家知道程序在运行时使用的空间被划分为多个不同的区域,每个区域都有不同的作用 正文代码:存放程序的可执行代码 通常都是只读的初始化数据:未初始化数据堆区:用于动态分配内存…...
GPU虚拟化实现(七)
GPU虚拟化实现(七) 章节回顾进程管理资源限制和环境变量利用率监控线程信号处理退出处理代码具体运作流程怎么限制SM的总结章节回顾 在上一章,分析了项目的主要代码模块功能:共享内存和初始化、GPU 内存管理、GPU 利用率管理以及锁机制,在这一章将继续分析其他的代码模块…...
【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解
【QNX+Android虚拟化方案】137 - msm-5.4 Kernel U盘 插入中断、枚举、匹配完整流程详解 1. HUB提交中断URB给HCD控制器,URB完成回调函数为 hub_irq()2. U盘插入后,触发运行 hub_irq() 中断回调函数2.1 高通 DWC3 Host HCD 初始化流程2.2 urb->complete(urb) 中断回调流程…...
分布式锁的几种实现
前几天看一个面试视频,提到了分布式锁一直想写写,但奈何考试太多,直到今天才有时间。好啦,开始今天的文章吧。 一.定义 分布式锁:当多个进程不在同一个系统中(比如分布式系统中控制共享资源访问),用分布式…...
Android 解绑服务问题:java.lang.IllegalArgumentException: Service not registered
问题与处理策略 问题描述 在 Android 项目中,解绑(unbindService())一个服务(Service)时,报如下错误 java.lang.IllegalArgumentException: Service not registered问题原因 错误表明在解绑服务时&…...
注册登录页面项目
关系型数据库地址:C:\Users\ASUS\AppData\Local\Temp\HuaweiDevEcoStudioDatabases\rdb #注册页面register.ets import dataRdb from ohos.data.rdbconst STORE_CONFIG {name: weather4.db } const TABLE_NAME weather_info const SQL_CREATE_TABLE CREATE TAB…...
从 Python 基础到 Django 实战 —— 数据类型驱动的 Web 开发之旅
主题简介: 本主题以 Python 基础数据类型为核心,结合 Django 框架的开发流程,系统讲解如何通过掌握数字、字符串、列表、元组、字典等基础类型,快速构建功能完善的 Web 应用。通过理论与实践结合,帮助学员从零基础 Py…...
数字智慧方案5971丨智慧农业大数据平台解决方案(59页PPT)(文末有下载方式)
详细资料请看本解读文章的最后内容。 资料解读:智慧农业大数据平台解决方案 在现代农业发展进程中,智慧农业大数据平台解决方案正成为推动农业变革的关键力量。这一方案从项目简介到大数据展示,各个环节紧密相连,致力于为农业发展…...
MOOS-ivp使用(一)——水下机器人系统的入门与使用
MOOS-ivp使用(一)——水下机器人系统的入门与使用 MOOS-ivp(Marine Operational Oceanographic System for Intelligent Vehicle Planning)是专为水下机器人(如AUV)设计的开源框架。类似于ROS,…...
【网络服务器】——回声服务器(echo)
作用 实现回声服务器的客户端/服务器程序,客户端通过网络连接到服务器,并发送任意一串英文信息,服务器端接收信息后,执行数据处理函数:将每个字符转换为大写并回送给客户端显示。 客户端:发送字符信息 服…...
IDEA在项目中添加模块出现Error adding module to project: null(向项目添加模块时出错: null)的解决方法
解决方法 (1)打开当前项目的结构...
(34)VTK C++开发示例 ---将图片映射到平面
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 演示如何将图片作为纹理贴图到一个平面上。 这段代码的功能是使用 VTK(Visualization Toolkit࿰…...
微软与Meta大幅增加人工智能基础设施投入
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
华为云服务器VoceChat在线聊天室部署
目录 1. 项目介绍2. 准备条件3. Docker环境部署3.1 安装Docker(CentOS 7)3.2 安装Docker Compose3.3 Docker常用命令 4. 创建配置文件4.1 创建工作目录4.2 创建docker-compose.yml文件4.3 保存配置文件 5. 部署运行5.1 启动服务5.2 检查服务状态5.3 防火…...
ERP系统(技术面)知识积累
本文为本人在准备某公司信息技术类岗位的面试时所作的笔记,该公司有技术面,此岗位入职后负责的是ERP系统的运行和维护,所以可能会问ERP系统相关的问题。故我写此文以做准备。 ERP简介 ERP,全称Enterprise Resource Planning&…...
Python学习笔记(第三部分)
接续 Python.md 文件的第三部分 类 类的创建的基本使用 创建一个类 class Dog(): 文档字符串:这是一次模拟小狗的简单尝试 def __init__(self,name,age):self.name nameself.age agedef sit(self):print(self.name.title() " is now sitting.")def ro…...