C++之STL-String

目录

一、STL简介

1.1 什么是STL

1.2 STL的版本

1.3 STL的六大组件

​编辑 1.4 STL的重要性

二、String类

 2.1 Sting类的简介

2.2 string之构造函数

2.3 string类对象的容量操作

2.3.1 size()

2.3.2 length()

2.3.3 capacity()

2.3.4 empty()

2.3.5 clear()

2.3.6 reserve()

2.3.7 resize()


一、STL简介

1.1 什么是STL

       STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。

1.2 STL的版本

  • 原始版本
    lexander Stepanov、Meng Lee 在惠普实验室完成的原始版本,本着开源精神,他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码,无需付费。唯一的条件就是也需要向原始版本一样做开源使用。 HP 版本--所有STL实现版本的始祖。

  • P. J. 版本
    由P. J. Plauger开发,继承自HP版本,被Windows Visual C++采用,不能公开或修改,缺陷:可读性比较低,符号命名比较怪异。

  • RW版本
    由Rouge Wage公司开发,继承自HP版本,被C+ + Builder 采用,不能公开或修改,可读性一般。

  • SGI版本
    由Silicon Graphics Computer Systems,Inc公司开发,继承自HP版 本。被GCC(Linux)采用,可移植性好,可公开、修改甚至贩卖,从命名风格和编程 风格上看,阅读性非常高。

1.3 STL的六大组件

 1.4 STL的重要性

       STL的重要性首先就体现在刷题上面,其次就是体现在面试上,当你参加面试时面试官会经常问你一些关于STL的问题。那么废话不多说,就让我们进入对STL的学习把

二、String类

 2.1 Sting类的简介

简单来说,string类是用来对字符串进行操作的一个类,除了一些寻常的接口之外它还提供了一些专门设计用于操作单字节字符串的功能等等。

2.2 string之构造函数

我们来介绍几个常用的构造函数:

  1. 用一串字符串进行构造。
    string tmp("123456");
  2. 用一个字符进行构造。
    string tmp('1');
  3. 用一段迭代器区间进行构造。
    string tmp("123456");
    string str(tmp.begin(),tmp.end());
  4. 拷贝构造。
    string tmp("123456");
    string str(tmp);
  5. 用n个字符进行构造。
    string tmp(10.'1');

2.3 string类对象的容量操作

2.3.1 size()


其作用主要是返回有效字符的长度。

2.3.2 length()

其作用也是返回有效字符的长度。

2.3.3 capacity()

 其功能主要是返回空间的总大小。

2.3.4 empty()

其功能主要检测字符串是否为空串,是就返回true,不是就返回false。

2.3.5 clear()

其功能主要是清空字符串。

2.3.6 reserve()

其功能主要是为字符串预留空间。

2.3.7 resize()

将有效字符的个数改成n个,多出的空间用字符c填充。

注意:

  1. size()与length()方法底层实现原理完全相同,引入size()的原因是为了与其他容器的接口保持

    一致,一般情况下基本都是用size()。

  2. clear()只是将string中有效字符清空,不改变底层空间大小。

  3. resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char c)用字符c来填充多出的元素空间。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大小,如果是将元素个数减少,底层空间总大小不变。

  4. . reserve(size_t res_arg=0):为string预留空间,不改变有效元素个数,当reserve的参数小于string的底层空间总大小时,reserver不会改变容量大小。

     


     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/645243.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IEEE论文Word转高清PDF

一、问题描述 简单的操作word直接导出为PDF,会导致图片的模糊。 甚至在高级选项里选择分辨率为"高保真"(图1),输出PDF时选择“标准”(图2),也无法逃避图片的模糊(图3&am…

UDS的0x19服务

0x19读取故障码信息 0x19的子功能01 19 01 用于读取故障码的数量。 DTC SM故障码的状态掩码 DTC FID所支持的故障码状态的情况 DTC Count存储故障码格式的标识符 DTC FID(DTC的格式标识符),如下所示 常用的为00 0x19的子功能02 19 02 用…

开源社区与开发者的故事

开源社区与开发者的故事 什么是开源社区你参加开源社区的主要目的你是否在开源社区中贡献,或者开源自己的项目?你认为个人开发者是否应该从开源中获利?如果是,该如何获利? 今天要谈及的主题是开源社区,那么…

【InternLM实战营---第六节课笔记】

一、本期课程内容概述 本节课的主讲老师是【樊奇】。教学内容主要包括以下三个部分: 1.大模型智能体的背景及介绍 2. Lagent&AgentLego框架介绍 3.Lagent&AgentLego框架实战 二、学习收获 智能体出现的背景 智能体的引入旨在克服大模型在应对复杂、动态任…

Unity类银河恶魔城学习记录13-5,6 p146 Delete save file,p147 Encryption of saved data源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili FileDataHandler.cs using System; using System.IO; using UnityEngine; p…

数据科学/分析党的福音—亚马逊云科技Amazon Zero ETL(零ETL)技术介绍

2023年亚马逊云科技全球大会Re:invent上,数据产品VP Swami博士正式推出了Amazon Zero ETL服务,支持业务大数据从Aurora向Redshift的实时导入、分析。 过去在亚马逊云科技上构建数据分析平台,最令人头疼的莫属ETL环节。遇到的挑战包括:▶️提取…

ECharts海量数据渲染解决卡顿

file模块用来写文件 我们首先使用node来生成10万条数据; 借助node的fs模块就行; 如果不会的小伙伴;也不要担心;超级简单// 引入模块 let fs = require(fs); // 数据内容 let fileCont=我是文件内容 /*** 第一个参数是文件名* 第二个参数是文件内容,这个文件的内容必须是字…

2024年 团体程序设计天梯赛个人总结

前言: 这是一个悲伤的故事~ 🏆题目传送门 ⭐L1一阶题⭐L1-097 编程解决一切(5分)⭐L1-098 再进去几个人(5分)⭐L1-099 帮助色盲(10分)⭐L1-100 四项全能(10 分&#xff0…

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections(野外的 NERF: 用于无约束照片采集的神经辐射场) Abstract 我们提出了一种基于学习的方法来合成新的视图的复杂场景使用只有非结构化的收集野生照片。我们建立在神经辐射场(neRF)的…

ONLYOFFICE:一站式在线协作办公好选择

🛵前言 随着信息技术的迅猛发展,人们对办公方式的需求也在不断变化。传统的办公软件已经无法满足现代企业的需求,而在线协作办公软件则成为了一个热门选择。 在众多在线协作办公软件中,ONLYOFFICE凭借其强大的功能和灵活的部署方…

如何远程实时监控员工的电脑屏幕?

企业规模的扩大和管理的复杂化,远程实时监控员工的电脑屏幕成为了许多企业管理者的需求。 这种监控不仅可以帮助管理者了解员工的工作状态,提高工作效率,还能在一定程度上保障企业的信息安全。 那么,如何实现远程实时监控员工的电…

Spring三级缓存源码解析

Spring三级缓存 前置知识三级缓存定义SpringBean生命周期 Bean的初始化getSingleton 分析加入一级缓存 CreateBean过程(A)A填充属性BB填充属性A,执行getSingleton(A)B完成初始化 前置知识 三级缓存定义 public class DefaultSingletonBeanRegistry ext…