(STL之string)string类的用法详解

news2024/11/29 20:51:30

string类成员函数PART1

成员函数(构造函数+拷贝构造函数):string

  1. 函数原型:
string();
string (const string& str);	
string (const string& str, size_t pos, size_t len = npos);
string (const char* s);
string (const char* s, size_t n);
string (size_t n, char c);
template <class InputIterator>
string  (InputIterator first, InputIterator last);
  1. 函数功能(通俗):创建string类实例化对象时一语双关调用的构造函数
  2. 函数简介(文档):
    在这里插入图片描述

成员函数(析构函数):~string

  1. 函数原型:
~string();
  1. 函数功能(通俗):完成string类实例化对象即将销毁前的资源清理工作
  2. 函数简介(文档):
    在这里插入图片描述

成员函数(赋值运算符重载):operator =

  1. 函数原型:
string& operator= (const string& str);
string& operator= (const char* s);
string& operator= (char c);
  1. 函数功能(通俗):对已有的string类实例化对象用其他已有的string类实例化对象进行赋值
  2. 函数简介(文档):
    在这里插入图片描述

string类成员函数PART2

成员函数:begin

  1. 函数原型:
iterator begin();
const_iterator begin() const;
  1. 函数功能(通俗):返回指向string类实例化对象中的字符串其第一个字符的迭代器
  2. 函数简介(文档):在这里插入图片描述

成员函数:end

  1. 函数原型:
iterator end();
const_iterator end() const;
  1. 函数功能(通俗):返回指向string类实例化对象中的字符串其终止符’\0’的迭代器
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:rbegin

  1. 函数原型:
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
  1. 函数功能(通俗):返回指向string类实例化对象中的字符串其最后一个字符(非’\0’)的迭代器
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:rend

  1. 函数原型:
reverse_iterator rend();
const_reverse_iterator rend() const;
  1. 函数功能(通俗):返回指向string类实例化对象中的字符串其第一个字符再前面一个字节的迭代器
  2. 函数简介(文档):
    在这里插入图片描述

string类成员函数PART3

成员函数:size

  1. 函数原型:
size_t size() const;
  1. 函数功能(通俗):返回string类实例化对象的size
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:capacity

  1. 函数原型:
size_t capacity() const;
  1. 函数功能(通俗):返回string类实例化对象的capacity
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:resize

  1. 函数原型:
void resize (size_t n);
void resize (size_t n, char c);
  1. 函数功能(通俗):增加string类实例化对象的capacity,扩容后并且进行初始化填值(可以自己指定,默认为’\0’),实例化对象的size也会相应增加(因为进行了初始化填值)
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:reserve

  1. 函数原型:
void reserve (size_t n = 0);
  1. 函数功能(通俗):增加string类实例化对象的capacity,扩容后并不进行初始化填值,即实例化对象的size不变
  2. 函数简介(文档):在这里插入图片描述

成员函数:clear

  1. 函数原型:
void clear();
  1. 函数功能(通俗):清空string类实例化对象中的内容,即size变为0,但capacity不变
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:empty

  1. 函数原型:
bool empty() const;
  1. 函数功能(通俗):判断string类实例化对象是否为空(size是否为0)
  2. 函数简介(文档):在这里插入图片描述

string类成员函数PART4

成员函数:operator[ ]

  1. 函数原型:
char& operator[] (size_t pos);
const char& operator[] (size_t pos) const;
  1. 函数功能(通俗):把string类实例化对象中的内容当成一个字符数组来看,数组里面的[ ]非常熟悉
  2. 函数简介(文档):
    在这里插入图片描述

string类成员函数PART5

成员函数:operator+=

  1. 函数原型:
string& operator+= (const string& str);
string& operator+= (const char* s);
string& operator+= (char c);
  1. 函数功能(通俗):对string类实例化对象中的字符串内容进行尾部追加新内容
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:append

  1. 函数原型:
string& append (const string& str);	
string& append (const string& str, size_t subpos, size_t sublen);
string& append (const char* s);
string& append (const char* s, size_t n);
string& append (size_t n, char c);
template <class InputIterator>
string& append (InputIterator first, InputIterator last);
  1. 函数功能(通俗):对string类实例化对象中的字符串内容进行尾部追加新内容
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:push_back

  1. 函数原型:
void push_back (char c);
  1. 函数功能(通俗):对string类实例化对象中的字符串内容进行尾部追加新字符
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:assign

  1. 函数原型:
string& assign (const string& str);
string& assign (const string& str, size_t subpos, size_t sublen);
string& assign (const char* s);
string& assign (const char* s, size_t n);
string& assign (size_t n, char c);
template <class InputIterator>
string& assign (InputIterator first, InputIterator last);
  1. 函数功能(通俗):清空string类实例化对象中的字符串内容,并且重新填入新字符串
  2. 函数简介(文档):在这里插入图片描述

成员函数:insert

  1. 函数原型:
string& insert (size_t pos, const string& str);
string& insert (size_t pos, const string& str, size_t subpos, size_t sublen);
string& insert (size_t pos, const char* s);
string& insert (size_t pos, const char* s, size_t n);
string& insert (size_t pos, size_t n, char c);
void insert (iterator p, size_t n, char c);
iterator insert (iterator p, char c);
template <class InputIterator>
void insert (iterator p, InputIterator first, InputIterator last);
  1. 函数功能(通俗):在string类实例化对象中的字符串内容非尾部插入指定新字符串内容(其’\0’不作为实体插入字符)
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:erase

  1. 函数原型:
string& erase (size_t pos = 0, size_t len = npos);
iterator erase (iterator p);
iterator erase (iterator first, iterator last);
  1. 函数功能(通俗):对string类实例化对象中的字符串中某些字符进行删除
  2. 函数简介(文档):在这里插入图片描述
    特殊原因:成员函数replace 和 swap 这边暂时不做介绍

string类成员函数PART6

成员函数:c_str

  1. 函数原型:
const char* c_str() const;
  1. 函数功能(通俗):提取string类实例化对象中的字符串(返回堆区字符串数据的起始指针)
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:find

  1. 函数原型:
size_t find (const string& str, size_t pos = 0) const;	
size_t find (const char* s, size_t pos = 0) const;
size_t find (const char* s, size_t pos, size_t n) const;
size_t find (char c, size_t pos = 0) const;
  1. 函数功能(通俗):从string类实例化对象中的字符串指定位置向后去查找特定字串第一次出现的下标位置并返回(注意:无论怎样,原串与字串匹配都是从前往后依次字符比对匹配的)
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:rfind

  1. 函数原型:
size_t rfind (const string& str, size_t pos = npos) const;
size_t rfind (const char* s, size_t pos = npos) const;
size_t rfind (const char* s, size_t pos, size_t n) const;
size_t rfind (char c, size_t pos = npos) const;
  1. 函数功能(通俗):从string类实例化对象中的字符串指定位置向前去查找特定字串第一次出现的下标位置并返回(注意:无论怎样,原串与字串匹配都是从前往后依次字符比对匹配的)
  2. 函数简介(文档):在这里插入图片描述

成员函数:find_first_of

  1. 函数原型:
size_t find_first_of (const string& str, size_t pos = 0) const;
size_t find_first_of (const char* s, size_t pos = 0) const;
size_t find_first_of (const char* s, size_t pos, size_t n) const;
size_t find_first_of (char c, size_t pos = 0) const;
  1. 函数功能(通俗):从string类实例化对象中的字符串指定位置向后去查找指定字符串内任意一个字符第一次出现的下标位置并返回
  2. 函数简介(文档):
    在这里插入图片描述

成员函数:find_last_of

  1. 函数原型:
size_t find_last_of (const string& str, size_t pos = npos) const;
size_t find_last_of (const char* s, size_t pos = npos) const;
size_t find_last_of (const char* s, size_t pos, size_t n) const;
size_t find_last_of (char c, size_t pos = npos) const;
  1. 函数功能(通俗):从string类实例化对象中的字符串指定位置向前去查找指定字符串内任意一个字符第一次出现的下标位置并返回
  2. 函数简介(文档):在这里插入图片描述

成员函数:substr

  1. 函数原型:
string substr (size_t pos = 0, size_t len = npos) const;
  1. 函数功能(通俗):创建一个新的string类实例化对象并用当前string类实例化对象的指定位置加上后面共len个字符进行构造初始化,并返回该新string实例化对象
  2. 函数简介(文档):在这里插入图片描述

非成员函数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目中使用es(一):使用springboot操作elasticsearch

使用springboot操作es 写在前面搭建项目环境和选择合适版本具体的代码实现&#xff08;1&#xff09;继承ProductInfoRepository具体的代码实现&#xff08;2&#xff09;使用ElasticsearchRestTemplate操作问题总结最后放个demo 写在前面 对于elasticsearch的搭建&#xff0c…

【Top10】天津高性价比Web前端培训机构(Web前端需要掌握什么技能)

Web前端开发已经成为了一门备受瞩目的技能&#xff0c;对于一些初学者或者转行的人来说&#xff0c;也是非常友好的&#xff0c;当然越火也越会存在争议&#xff0c;大部分没有经验的人会选择参加培训来学习Web前端技术&#xff0c;也有不少人对于参加Web前端培训的必要性存在疑…

项目管理系统的设计与实现(ASP.NET,SQL)

开发环境&#xff1a;Microsoft Visual Studio 数据库&#xff1a;Microsoft SQL Server 程序语言&#xff1a;asp.NET(C#)语言本系统的开发使各大公司所的项目管理更加方便快捷&#xff0c;同时也促使项目的管理变的更加系统化、有序化。系统界面较友好&#xff0c;易于操作。…

AIGC下的低代码赛道,你我皆是拓荒人

今年年初&#xff0c;ChatGPT的现象级爆发&#xff0c;让其底层技术AIGC的承载方OpenAI备受关注。几重buff叠加&#xff0c;打工人的命运可以说是跌宕起伏&#xff0c;命途多舛了。在国内&#xff0c;AIGC的长期价值已逐渐被挖掘&#xff0c;正在重构人们的办公、娱乐乃至生活方…

启真医学大模型

启真医学大模型 QiZhenGPT: An Open Source Chinese Medical Large Language Model 本项目利用启真医学知识库构建的中文医学指令数据集&#xff0c;并基于此在LLaMA-7B模型上进行指令精调&#xff0c;大幅提高了模型在中文医疗场景下效果&#xff0c;首先针对药品知识问答发…

事务隔离级别-浅析

事务隔离级别是指在并发操作下&#xff0c;不同的事务之间互相隔离的程度。常见的事务隔离级别有以下四种&#xff1a; 读未提交&#xff08;Read Uncommitted&#xff09;&#xff1a;一个事务可以读取另一个未提交事务的数据。这样可能会导致脏读、不可重复读和幻读等问题。…

是德KEYSIGHT N9918A、N9917A 手持式射频和微波组合分析仪

是德&#xff08;KEYSIGHT) N9917A,N9918A 手持式射频和微波组合分析仪 Keysight N9918A FieldFox 组合分析仪能够处理日常维护、深度故障排除以及介于两者之间的任何事情。Keysight N9918A (Agilent) FieldFox 可随时随地为您提供高质量测量。将 FieldFox N9918A 添加到您的故…

面试官:你来说一下分布式锁的设计与实现

今天跟大家探讨一下分布式锁的设计与实现。希望对大家有帮助&#xff0c;如果有不正确的地方&#xff0c;欢迎指出&#xff0c;一起学习&#xff0c;一起进步哈~ 分布式锁概述 数据库分布式锁 Redis分布式锁 Zookeeper分布式锁 三种分布式锁对比 1. 分布式锁概述 我们的…

低代码制造ERP管理系统:降低开发成本,提高生产效率

随着制造业的快速发展&#xff0c;ERP管理系统成为了现代制造业中不可或缺的一部分。ERP管理系统可以帮助企业更好地管理生产流程、库存和供应链等方面&#xff0c;从而提高企业的生产效率和竞争力。然而&#xff0c;传统的ERP管理系统往往需要大量的编程工作和长周期的开发过程…

Kali渗透Windows服务器

这个实验主要让我们学习漏洞扫描技术基本原理&#xff0c;了解其在网络攻防中的作用&#xff0c;掌握使用Kali中的Metasploit对目标主机渗透&#xff0c;并根据报告做出相应的防护措施。 本次实战环境&#xff1a;Kali渗透Windows服务器 实战步骤一 本实验通过利用kali进行漏…

【springcloud微服务】Spring Cloud Alibaba 整合dubbo与openfeign

一、前言 dubbo与springcloud都可以单独作为微服务治理框架在生产中进行使用&#xff0c;但使用过springcloud的同学大概了解到&#xff0c;springcloud生态的相关组件这些年已经逐步停更&#xff0c;这就导致在服务架构演进过程中的迭代断层&#xff0c;以至于一些新的技术组…

LabVIEWCompactRIO 开发指南第六章43

LabVIEWCompactRIO 开发指南第六章43 复用 模块中较昂贵的组件之一是ADC。通过使用多路复用器&#xff08;也称为多路复用器&#xff09;通过单个ADC路由多个通道&#xff0c;多路复用模块以比同步模块更低的每通道价格提供更高的通道数。 在学习如何对这些模块进行编程之前…

前端学习Flutter笔记(第一章:安装软件,配置环境变量等)

学习背景 人都是有惰性的&#xff0c;如果没有外界压力&#xff0c;基本不会取主动学习&#xff0c;有那个学习的时间宁愿多刷点小视频。。。。 公司有项目使用Flutter写的&#xff0c;想让我接手&#xff0c;可是咱不会啊&#xff0c;没接触过。就浅浅的在b站着了几个视频。 第…

什么是腾讯云轻量应用服务器?轻量与云服务器对比区别有哪些?

什么是腾讯云轻量应用服务器&#xff1f;轻量应用服务器是腾讯云推出的开箱即用轻量级云服务器&#xff0c;适合个人开发者或中小企业使用&#xff0c;腾讯云轻量服务器和云服务器有什么区别&#xff1f;为什么轻量应用服务器成本更低&#xff1f;是因为轻量服务器CPU内存性能比…

Transformer-《Attention Is All You Need》

目录 0.Transformer介绍 1.self-attention 和Multi-heads self-attention 1.1 self-attention&#xff08;自注意力机制&#xff09; 1.2 Multi-heads self-attention&#xff08;多头自注意力机制&#xff09; 2.网络结构 2.1 encoder&#xff08;编码器&#xff09; 2…

【尔嵘】感恩四周年,感谢支持

前言 注意&#xff1a;为感谢各位铁粉支持&#xff0c;【尔嵘】将随机一个号码赠送一本vue.js书籍&#xff0c;欢迎评论区留言&#xff01; 在当前互联网领域中&#xff0c;CSDN是一个非常知名的技术社区&#xff0c;在这里你可以接触到很多高质量的技术文章和技术交流。对于技…

九年测试老鸟,写给1~5年的测试工程师的几点建议,满满硬货指导

从15年毕业到现在也从业八年了&#xff0c;普通本科毕业&#xff0c;现在一家互联网公司担任测试部门总监&#xff0c;摸爬打滚&#xff0c;坑坑洼洼也经历了不少。思绪很久决定还是写下这篇&#xff0c;希望对后进的小伙子少走一点弯路。 很多人把职场想得太美好&#xff0c;其…

七人拼团系统开发模式详解

七人拼团是最近兴起的一个模式&#xff0c;它通过更人性化的奖励机制&#xff0c;将产品利润最大化让利给参与拼团的用户&#xff0c;达到促进用户主动积极裂变和团队平台引流提升销量的效果&#xff0c;下面就来详细说一下这个模式。 七人拼团最大的特点&#xff0c;就是结合了…

JVM之栈和堆运行时内存深度剖析

运行时内存篇 程序计数器 也是线程私有的,不共享,因为cpu时间片轮换的缘故,所以需要记录上次未执行完的线程执行到那条字节码指令了,所以每个线程需要记录当前执行的命令的内存指针,以方便线程再次得到执行的时候按照正确的顺序执行 JVM之栈(虚拟机栈) 基础知识 会gc吗 不…

pinpoint安装部署(相关博客合集)

pinpoint安装部署 说明一、PinPoint介绍及工作原理1.1 确定部署的组件及服务 二、相关组件版本兼容情况2.1 确定版本 三、部署3.1 HBASE3.2 agent 说明 本博客写在搭建PinPoint之前&#xff0c;主要是用来记录查阅的相关博客资料&#xff0c;等到动手搭建完再更新实际部署操作…