C++之String类(上)
片头
嗨!好久不见~ 今天我们来学习C++的Sting类,不过,在学习它之前,我们先来对STL库有一个简单的了解。
STL(standard template library--标准模板库),是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。
STL的版本
- 原始版本
- P.J版本
- RW版本
- SGI版本
一、为什么学习string类?
1.1 C语言中的字符串
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP思想(面向对象编程),而且底层空间需要用户自己清理,稍不留神可能还会越界访问。
例如:C语言中的strcpy和strcat函数
strcpy:把一个字符串的内容复制到另一个字符串中
①空间必须自己提供,并且要保证,2块空间至少一样大
②如果如果目标字符串的空间不足以容纳源字符串,就会导致内存溢出的问题
③ 在使用strcpy函数时,应保证目标字符串有足够的空间
strcat:将一个字符串拼接到另一个字符串的末尾
①从头到尾找源字符串的'\0',如果源字符串很长,那么效率会非常低下
②目标字符串必须有足够的空间来容纳源字符串,否则会导致缓冲区溢出的问题
在OJ中,有关字符串的题目基本以string类的形式出现,而且在常规工作中,为了简单,方便,快捷,基本都使用string类,很少有人去使用C库中的字符串操作函数。
二、标准库中的string类
2.1 string类
(1)字符串是表示字符序列的类
(2)标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性
(3)string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型)
(4)string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits和allocator作为basic_string的默认参数
(5)注意:这个类独立于所使用的编码来处理字节:如果用来处理多字节或变成字符(如UTF-8)的序列,这个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作
总结:
- string是表示字符串的字符串类
- 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作
- string在底层实际是:basic_string模板类的别名,typedef basic_string<char,char_traits,allocator>string
- 不能操作多字节或者变长字符的序列
在使用string类时,必须包含#include头文件以及using namespace std;
2.2 string类对象的常见构造
1.string类对象的常见构造
(constructor)函数名称 | 功能说明 |
string() 默认构造 (不传参就可以调用) | 构造空的string类对象,即空字符串 |
string(const char* s) 带参构造 | 用C-string来构造string类对象 |
string(const string& s) 拷贝构造 | 拷贝构造函数 |
string(size_t n,char c) | string类对象中包含n个字符c |
string(const string& s,size_t pos,size_t len = npos) | 从pos位置开始,拷贝len个字符去构造(初始化) |
string(const char* s,size_t n) | 拷贝字符串的前n个字符 |
我们先把前3个给试试看~
void test_string1() {string s1; //默认构造string s2("hello world!"); //带参构造string s3(s2); //拷贝构造//支持流插入和流提取cout << s1 << endl;cout << s2 << endl;cout << s3 << endl;cin >> s1;cout << s1 << endl;
}
运行结果如下:
(3)string(const string& s,size_t pos,size_t len = npos)函数
string(const string& s,size_t pos,size_t len = npos);
我们可以尝试一下:
那么,当len为npos是什么意思呢?
如果我们不传第3个参数的值,那么len就默认是npos,就从pos位置开始,拷贝42亿个字符。
但是根本不可能啊!所以,当出现这种省略第3个参数的情况,编译器默认拷贝到源字符串的结尾。
那如果我传递的第3个参数的值大于源字符串的长度,会怎么样?很明显,也是拷贝到字符串的结束位置。
void test_string2() {string s1("beautiful!");string s2(s1, 4, 6);string s3(s1, 4);string s4(s1, 4, 30);cout << s2 << endl;cout << s3 << endl;cout << s4 << endl;
}
总结:
①len>后面的字符长度,有多少拷贝多少,拷贝到结尾
②缺省参数npos是整型最大值,一定大于后面的长度,不传第3个参数默认拷贝到结尾
(5)string(const char* s,size_t n)函数
我们测试一下:
void test_string3() {string s1("hello world!",5);cout << s1 << endl;
}
(6)string(size_t n,char c)函数
我们测试一下:
void test_string4() {string s1(10,'x');cout << s1 << endl;
}
小试牛刀:
看看这2个函数,是不是感觉很熟悉?
void test_string5() {//带参构造string s1("hello world!");//隐式类型转换string s2 = "hello world!";
}
其实,这2个看似相同,但是里面的逻辑是不一样的~
那如果我想用引用&符号呢?
void test_string6() {//带参构造string s1("hello world!");//隐式类型转换string s2 = "hello world!";//引用的是生成的临时对象//临时对象具有常性,因此,需要在前面添加constconst string& s3 = "hello world!";
}
此时,s3为临时对象的别名,因此,这里是直接构造,不需要优化
2.3 string类对象的容量操作
函数名称 | 功能说明 |
size | 返回字符串有效长度 |
length | 返回字符串有效长度 |
capacity | 返回空间总大小 |
empty | 检测字符串是否为空串,是返回true,否则返回false |
clear | 清空有效字符 |
reserve | 为字符串预留空间 |
resize | 将有效字符的个数改成n个,多出的空间用字符c填充 |
(1)size函数和length函数
size_t size() const;
返回字符串有效字符长度
void test_string7() {string s1("hello world");cout << s1.size() << endl;cout << s1.length() << endl;
}
注意:1.size()和length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持一致,一般情况下都是用size()
(2)capacity函数
size_t capacity() const;
返回字符串的容量
void test_string30() {string s1("hello");cout << s1.capacity() << endl;
}
我们可以看看在vs上的扩容:
void TestPushBack() {string s;size_t sz = s.capacity();cout << "capacity init: " << sz << '\n';cout << "making s grow:\n";for (int i = 0; i < 200; i++) {s.push_back('c');if (sz != s.capacity()) {sz = s.capacity();cout << "capacity changed: " << sz << '\n';}}
}
我们可以看到,capacity比实际空间少一个,有一个多的空间是预留给'\0'的
如何扩容,C++标准并没有规定,取决于编译器实现
(3)empty函数
bool empty() const;
检测字符串是否为空串,为空返回true,否则返回false
void test_string31() {string s1;string s2("hello");cout << s1.empty() << endl;cout << s2.empty() << endl;
}
(4)clear函数
void clear();
用于清空有效字符,不改变字符串容量的大小
void test_string32() {string s1("hello");s1.clear();cout << s1.size() << endl;
}
(5)reserve函数
void reserve(size_t n = 0);
为字符串预留空间(只影响capacity,不影响size)
void test_string33() {string s1("hello");cout << s1.capacity() << endl;s1.reserve(10);cout << s1.capacity() << endl;s1.reserve(50);cout << s1.capacity() << endl;
}
如果n比原容量小,则不做改变
在vs上常常会开比n更大一些的空间
所以,如果知道需要多少空间,我们可以使用reserve函数提前开好,避免频繁扩容带来的不方便
(6)resize函数
void resize(size_t n);
void resize(size_t n,char c);
将有效字符的个数修改为n,并且如果n大于原来的_size,多出来的地方用字符c填充,不改变字符串容量的大小(既可以影响size,又可以影响capacity)
如果没有给出字符c,则用'\0'填充
void test_string34() {string s1("hello");cout << s1.c_str() << endl;s1.resize(2);cout << s1.c_str() << endl;s1.resize(10,'x');cout << s1.c_str() << endl;
}
2.4 string类对象的访问及遍历操作
函数名称 | 功能说明 |
operator[] | 返回pos位置的字符,const string类对象调用 |
begin+end | begin获取一个字符的迭代器+end获取最后一个字符下一个位置的迭代器 |
rbegin+rend | begin获取一个字符的迭代器+rend获取最后一个字符下一个位置的迭代器 |
范围for | C++11支持更简洁的范围for的新遍历方式 |
at | 返回字符串中pos位置的字符的引用 |
back | 返回字符串最后一个字符的引用 |
front | 返回字符第一个字符串的引用 |
如果,我想遍历s1字符串,该怎么做呢?
①首先,我们需要获取字符串的长度,运用size函数
②调用operator[]函数重载,可以使自定义类型像内置类型一样打印
void test_string8() {string s1("hello world");cout << s1.size() << endl;for (int i = 0; i < s1.size(); i++) {cout << s1[i] << " ";}cout << endl;
}
它的底层逻辑大概是这个样子:
引用返回,不仅可以减少拷贝,而且可以修改返回的对象
为什么可以用引用&返回呢?因为字符出了作用域并不会销毁,它是在堆上开辟的空间,返回的是堆上的字符,引用相当于是这个字符的别名
那么还有另一种方法遍历字符串么?有!使用iterator迭代器~
void test_string9() {string s1("hello world");cout << s1.size() << endl;//遍历方式1: 下标+[]for (int i = 0; i < s1.size(); i++) {cout << s1[i] << " ";}cout << endl;//遍历方式2: 使用iterator迭代器string::iterator it1 = s1.begin();while (it1 != s1.end()) {cout << *it1 << " ";++it1;}cout << endl;
}
此外,我们还可以使用范围for对字符串进行循环遍历~
void test_string9() {string s1("hello world");cout << s1.size() << endl;//遍历方式1: 下标+[]for (int i = 0; i < s1.size(); i++) {cout << s1[i] << " ";}cout << endl;//遍历方式2: 使用iterator迭代器string::iterator it1 = s1.begin();while (it1 != s1.end()) {cout << *it1 << " ";++it1;}cout << endl;//遍历方式3: 范围forfor (auto e : s1) {cout << e << " ";}cout << endl;
}
范围for的底层,它就是迭代器。因此,看上去有3种方法,实质上就只有2种---operator[]和迭代器
使用范围for的时候,是将s1里面的值依次拷贝给e,e相当于是s1里面的值的一份临时拷贝,对e进行修改不影响s1里面的值。如果我们需要通过e来改变s1里面的值,需要传引用&
//遍历方式3: 范围forfor (auto& e : s1) {e++;//将s1里面的每一个字符都+1cout << e << " ";}cout << endl;
当然啦,迭代器也分为被const修饰的和不被const修饰。
我们举一个例子,假如字符串s1被const修饰,也就是说,字符串s1的内容不允许改变。
所以,这里应该修改成这样:
void test_string11() {const string s1("hello world");string::const_iterator st1 = s1.begin();while (st1 != s1.end()) {cout << *st1 << " ";++st1;}cout << endl;
}
同时,因为是iterator是被const修饰的,因此它指向的内容不允许修改,也就是不能对*st1进行修改
还有一种更简便的方法,就是直接使用关键字auto,来帮助我们自动匹配类型
正着遍历,我们知道一些了,反向遍历呢?
那就要请出我们的一个朋友了---->rbegin函数和rend函数
就拿刚刚的s1字符串举一个例子吧~
我们可以尝试一下:
void test_string12() {string s1("hello world");string::reverse_iterator st1 = s1.rbegin();while (st1 != s1.rend()) {cout << *st1 << " ";++st1;}cout << endl;
}
同理, 如果s1被const修饰的话,reverse_iterator也应该被const修饰,变成const_reverse_iterator
(5)at函数
char& at(size_t pos);
const char& at(size_t pos)const;
返回字符串中pos位置的字符的引用
例如:
void test_string35() {string s1("hello");for (int i = 0; i < s1.size(); i++) {cout << s1.at(i);}cout << endl;
}
(6) back函数
char& back();
const char& back() const;
返回字符串最后一个字符的引用
例如:
void test_string36() {string s1("hello world!");cout << s1.back() << endl;
}
(7) front函数
char& front();
const char& front() const;
返回字符串第一个字符的引用
例如:
void test_string37() {string s1("hello world!");cout << s1.front() << endl;
}
好啦,接下来,我们想要对字符串s1里面的内容进行字典序排序,该怎么做呢?
首先,我们需要包含一个头文件#include<algorithm>
其次,我们需要使用sort函数来帮助我们完成字符排序
void test_string13() {string s1("hello world");cout << s1 << endl;//s1按字典序排序sort(s1.begin(), s1.end());cout << s1 << endl;
}
排完序的结果如下:
假设,我不想让第一个字符和最后一个字符不参与排序,只想让中间的字符进行排序,怎么做?
void test_string13() {string s1("hello world");cout << s1 << endl;//除了第一个和最后一个不参与,//其余的字符都要参与排序sort(++s1.begin(), --s1.end());cout << s1 << endl;
}
排序结果如下:
如果,我只想要前面的"hello"进行排序,那么区间就是下标[0,4],那么begin从0开始,end为5
void test_string13() {string s1("hello world");cout << s1 << endl;//前5个字符排序sort(s1.begin(), s1.begin() + 5);cout << s1 << endl;
}
片尾
今天我们学习了C++之stirng类(上),希望看完这篇文章能对友友们有所帮助!!!
求点赞收藏加关注!!!
谢谢大家!!!
相关文章:
C++之String类(上)
片头 嗨!好久不见~ 今天我们来学习C的Sting类,不过,在学习它之前,我们先来对STL库有一个简单的了解。 STL(standard template library--标准模板库),是C标准库的重要组成部分,不仅是…...
kubernets基础-ingress详细介绍
文章目录 什么是IngressIngress详细说明Ingress示例 Ingress控制器Ingress控制器的工作原理Ingress控制器的特点常见的Ingress控制器 Ingress关联Ingress控制器一、Ingress资源对象二、Ingress控制器三、Ingress与Ingress控制器的关联方式四、注意事项 多实例部署一、Ingress多…...
jenkins部署Maven和NodeJS项目
在 Java 项目开发中,项目的编译、测试、打包等是比较繁琐的,属于重复劳动的工作,浪费人力和时间成本。以往开发项目时,程序员往往需要花较多的精力在引用 jar 包搭建项目环境上,跨部门甚至跨人员之间的项目结构都有可能…...
在unity资源中发现无效引用
本文主要解决在不打开unity的情况下搜索出无效引用的资源的方法 1. 概述 一般只要遍历一下目录里所有资源,判空一下就好了但有些情况下,不希望打开unity, 尤其希望是在资源整合时,想更快验证资源的合法性, 这对合并提交及出包验证时,都要较大的需求 2. 简单的验证方法 简单来…...
C#知识|基于反射和接口实现抽象工厂设计模式
哈喽,你好啊,我是雷工! 01 应用场景 在项目的多数据库支持上、业务的多算法封装、以及各种变化的业务中; 02 抽象工厂组成 抽象工厂包括抽象产品(即业务接口,可以通过抽象类或抽象接口设计)…...
【分布式微服务云原生】gRPC vs RPC:深入探索远程过程调用的现代与经典
摘要 在分布式系统的世界里,gRPC和RPC是两个耳熟能详的术语,但它们之间有何区别和联系?本文将深入探讨gRPC和RPC的概念、关键特性、以及它们在现代软件开发中的应用。你将了解到gRPC如何作为RPC的一种实现,提供高性能的跨语言远程…...
听说这是MATLAB基础?
MATLAB(矩阵实验室)是一个强大的高性能计算环境和编程语言,广泛应用于数学计算、算法开发、数据分析、可视化以及模拟等多个领域。以下是MATLAB的一些基础知识,涵盖其功能、语法、基本操作等方面。 1. MATLAB环境 工作区…...
【CSS/HTML】圣杯布局和双飞翼布局实现两侧宽度固定,中间宽度自适应及其他扩展实现
前沿简介 圣杯布局和双飞翼布局是前端重要的布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。 圣杯布局来源于文章In Search of the Holy Grail,双飞翼布局来源于淘宝UED。 两者的实现方式有差异,但是都…...
数据流和数据流处理技术
一数据流 首先明确数据流概念:数据流是连续不断生成的、快速变化的无界数据序列 数据流类型: 数据流大致可以分为四种类型 1.连续型数据流:不断地产生数据,数据稳定速度输入系统。 2.突发型数据流:在某特定时间或…...
(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案
系列文章目录 文章目录 系列文章目录一、(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案1.资料 一、(IDEA)spring项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案 1.资料…...
解决TikTok无网络连接问题解析
随着社交媒体的快速发展,TikTok已成为全球用户最喜欢的短视频平台之一,吸引了数以亿计的用户。然而,在享受这个平台时,用户经常会遇到无网络连接的问题,这不仅影响观看体验,还可能导致无法上传内容或参与社…...
k8s中,ingress的实现原理,及其架构。
图片来源:自己画的 图片来源:k8s官网 首先,什么是ingress? 是服务还是控制器? 都不精确 ingress是一个api资源 service和deployment也是api资源。 这几个相互协作,组建成一个对外提供服务的架构。 ingress提供的…...
【数据结构强化】应用题打卡
应用题打卡 数组的应用 对称矩阵的压缩存储 注意: 1. 2.上三角的行优先存储及下三角的列优先存储与数组的下表对应 上/下三角矩阵的压缩存储 注意: 上/下三角压缩存储是将0元素统一压缩存储,而不是将对角线元素统一压缩存储 三对角矩阵的…...
解决 MySQL 服务无法启动:failed to restart mysql.service: unit not found
目录 前言1. 问题描述2. 问题分析3. 解决步骤3.1 检查 MySQL 服务文件3.2 备份旧的服务文件3.3 启动 MySQL 服务3.4 验证服务状态 4. 总结结语 前言 在日常使用 MySQL 数据库时,有时候可能会遇到服务无法正常启动的问题。这类问题通常出现在系统更新或者服务配置文…...
Dubbo和Http的调用有什么区别
背景 我们在项目开发中,需要进行调用外部接口时,往往使用Dubbo和Http方式都能实现远程调用。那么他们在使用上,有什么区别呢? 定位不同 一个是分布式环境下的框架,一个是通信协议。 Dubbo:是一种高性能的…...
ARM 架构、cpu
一、ARM的架构 ARM是一种基于精简指令集(RISC)的处理器架构. 1、ARM芯片特点 ARM芯片的主要特点有以下几点: 精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率…...
【React】入门Day03 —— Redux 与 React Router 核心概念及应用实例详解
1. Redux 介绍 // 创建一个简单的Redux store const { createStore } Redux;// reducer函数 function counterReducer(state { count: 0 }, action) {switch (action.type) {case INCREMENT:return { count: state.count 1 };case DECREMENT:return { count: state.count -…...
u2net网络模型训练自己数据集
单分类 下载项目源码 项目源码 准备数据集 将json转为mask json_to_dataset.py import cv2 import json import numpy as np import os import sys import globdef func(file):with open(file, moder, encoding"utf-8") as f:configs json.load(f)shapes configs…...
登录功能开发 P167重点
会话技术: cookie jwt令牌会话技术: jwt生成: Claims:jwt中的第二部分 过滤器: 拦截器: 前端无法识别controller方法,因此存在Dispa什么的...
数据架构图:从数据源到数据消费的全面展示
在这篇文章中,我们将探讨如何通过架构图来展示数据的整个生命周期,从数据源到数据消费。下面是一个使用Mermaid格式的示例数据架构图,展示了数据从源到消费的流动、处理和存储过程。 数据架构图示例 说明 数据源:分为内部数据源&…...
useEffect 与 useLayoutEffect 的区别
useEffect 与 useLayoutEffect 的区别 useEffect和useLayoutEffect是处理副作用的React钩子函数,有以下区别1. 执行时机不同2. 对性能影响不同3. 对渲染的影响不同:4. 使用场景不同 使用建议 useEffect和useLayoutEffect是处理副作用的React钩子函数&…...
OPENCV判断图像中目标物位置及多目标物聚类
文章目录 在最近的项目中,又碰到一个有意思的问题需要通过图像算法来解决。就是显微拍摄的到的医疗图像中,有时候目标物比较偏,也就是在图像的比较偏的位置,需要通过移动样本,将目标物置于视野正中央,然后再…...
分布式理论:拜占庭将军问题
分布式理论:拜占庭将军问题 介绍拜占庭将军的故事将军的难题 解决方案口信消息型拜占庭问题之解流程总结 签名消息型拜占庭问题之解 总结 介绍 拜占庭将军问题是对分布式共识问题的一种情景化描述,由兰伯特于1082首次发表《The Byzantine Generals Prob…...
从零开始Ubuntu24.04上Docker构建自动化部署(三)Docker安装Nginx
安装nginx sudo docker pull nginx 启动nginx 宿主机创建目录 sudo mkdir -p /home/nginx/{conf,conf.d,html,logs} 先启动nginx sudo docker run -d --name mynginx -p 80:80 nginx 宿主机上拷贝docker上nginx服务上文件到本地目录 sudo docker cp mynginx:/etc/nginx/ngin…...
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
作者:胡志广(独鳌) 背景 Serverless 应用引擎 SAE 事件中心主要面向早期的 SAE 控制台只有针对于应用维度的事件,这个事件是 K8s 原生的事件,其实绝大多数的用户并不会关心,同时也可能看不懂。而事件中心,是希望能够…...
人口普查管理系统基于VUE+SpringBoot+Spring+SpringMVC+MyBatis开发设计与实现
目录 1. 系统概述 2. 系统架构设计 3. 技术实现细节 3.1 前端实现 3.2 后端实现 3.3 数据库设计 4. 安全性设计 5. 效果展示 编辑编辑 6. 测试与部署 7. 示例代码 8. 结论与展望 一个基于 Vue Spring Boot Spring Spring MVC MyBatis 的人口普查管理…...
使用VBA快速将文本转换为Word表格
Word提供了一个强大的文本转表格的功能,结合VBA可以实现文本快速转换表格。 示例文档如下所示。 现在需要将上述文档内容转换为如下格式的表格,表格内容的起始标志为。 示例代码如下。 Sub SearchTab()Application.DefaultTableSeparator "*&quo…...
力扣题解1870
这道题是一个典型的算法题,涉及计算在限制的时间内列车速度的最小值。这是一个优化问题,通常需要使用二分查找来求解。 题目描述(中等) 准时到达的列车最小时速 给你一个浮点数 hour ,表示你到达办公室可用的总通勤时…...
D3.js数据可视化基础——基于Notepad++、IDEA前端开发
实验:D3.js数据可视化基础 1、实验名称 D3数据可视化基础 2、实验目的 熟悉D3数据可视化的使用方法。 3、实验原理 D3 的全称是(Data-Driven Documents),是一个被数据驱动的文档,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可视化的。本次实…...
在Robot Framework中Run Keyword If的用法
基本用法使用 ELSE使用 ELSE IF使用内置变量使用Python表达式本文永久更新地址: 在Robot Framework中,Run Keyword If 是一个条件执行的关键字,它允许根据某个条件来决定是否执行某个关键字。下面是 Run Keyword If 的基本用法: Run Keyword…...
网站在哪里/计算机培训班有用吗
昨天自己写一个按照当天日期查询数据的方法,例如今天是2012年7月20日。我原来写了好多种写法例如 ... where createtime like 2012-07-20%,还有... where createtime like %2012-07-20%等等的一些写法。但是总是不奏效。后来查阅了许多的资料自己算是吃了一惊。 这…...
wordpress怎么做淘客网站/网站推广联盟
转自https://blog.csdn.net/xiaohaijiejie/article/details/51023570,感谢原创作者Opencv中有图像修复的函数,其算法参考文献为Alexandru Telea 于2004年发表于Journal of Graphic Tools上的“An Image Inpainting Technique Based On the Fast Marching…...
万维网 网站到期/seo推广培训中心
在输入正确的账号密码后,单击确定后,登陆界面关闭,弹出一个新窗体。 首先定义Login类,并定义创建窗体的方法 需要注意的是,JFrame、JLabel、JTextField、JPasswordField、JButton都是javax.swing包下的类(FlowLayout是…...
衡水网站制作费用/头条关键词排名查询
一个人能跑出伟大一群人能跑出传奇5月1日-5月26日『公装无忧跑步月』 我们迈开脚步、跑出速度1好友,就多一声鼓励1公里,一起把终点拉近1配速,解锁今日份的成就感4支团结一致的队伍38位『公装人』在这个肆意奔跑的5月我们遇见了全新的自己『公…...
网站关于 模板/网站托管代运营
Java.util.LinkedList.size()方法用于获取链表的大小或链表中存在的元素数。用法:LinkedList.size()参数:此方法不带任何参数。返回值:此方法返回LinkedList中存在的元素的大小或数量。以下示例程序旨在说明Java.util.LinkedList.size()方法:…...
南通优普网站建设制作/辽宁seo推广
吞吐量 指在一次性能测试过程中网络上传输的数据量的总和。 对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外…...