Ciallo~ (∠・ω< )⌒★

string(1)

  • 1. 构造函数
    • 1.1 string();
    • 1.2 string(const char* s);
    • 1.3 string(const string& str);
    • 1.4 string(size_t n, char c);
    • 1.5 string(const string& str, size_t pos, size_t len = npos);
    • 1.6 string(const char* s, size_t n);
  • 2. 析构函数
  • 3. 赋值运算符重载
  • 4. 字符串的遍历
    • 4.1 下标+[]
    • 4.2 迭代器
    • 4.3 范围for
  • 5. string类对象的容量操作
  • 6. string类对象的修改操作
  • 7. string类非成员函数

1. 构造函数

string类有如下图的构造函数:
在这里插入图片描述
其中比较重要的是1,2,4,6。

1.1 string();

无参的构造函数,定义了一个空字符串

string str1;

1.2 string(const char* s);

用常量串初始化

string str1("hello world!");
string str2 = "hello world!";

这两种初始化方式的意义是不一样的,str1是直接构造,str2是隐式类型转换

1.3 string(const string& str);

这是string类的拷贝构造函数

string str1("hello world!");
string str2(str1);

1.4 string(size_t n, char c);

用n个字符c初始化

string str(10, '*'); //用10个*初始化str

1.5 string(const string& str, size_t pos, size_t len = npos);

字符串的截取,其中str是源字符串,pos是开始截取的位置,len是截取的长度

string str1 = "hello world";
string str2(str1, 2, 6);

输出结果是:llo wo

1.6 string(const char* s, size_t n);

拷贝一个字符数组s的前n个元素

2. 析构函数

~string(),是string类已经写好的,而且在程序结束时会自动调用,没啥好说的。

3. 赋值运算符重载

在这里插入图片描述

str1 = "Test string: ";   // c-string
str2 = 'x';               // single character
str3 = str1 + str2;       // string

4. 字符串的遍历

4.1 下标+[]

string str("hello world");
for (int i = 0; i < str.size(); i++)
{cout << str[i] << " ";
}

4.2 迭代器

string str("hello world");
string::iterator it = str.begin();
while (it != str.end())
{cout << *it << " ";++it;
}
cout << endl;

迭代器是通用的遍历容器的方法,用原生指针或用封装原生指针的自定义类实现。

4.3 范围for

auto是C++11引入的关键字,用于自动推导变量类型。编译器根据初始化表达式的类型推断变量的实际类型,简化代码编写并提升可读性。

string str("hello world");
for (auto e : str)
{cout << e << " ";
}

5. string类对象的容量操作

函数名功能
size返回字符串的有效字符长度
length返回字符串的有效字符长度
capacity返回字符串总空间大小
empty判断字符串是否为空,是则返回true,否则返回false
clear清空有效字符
reserve为字符串预留空间
resize将有效字符个数设为n个,多出的空间用指定字符填充

注意当 reserve 的参数大于字符串底层总空间大小时,扩容,小于字符串底层总空间大小时不缩容。
当 resize 的参数大于字符串底层总空间大小时,调用reserve扩容。

6. string类对象的修改操作

函数名功能
push_back在字符串后尾插字符c
append在字符串后追加一个字符串
operator+=在字符串后追加一个字符串
c_str将字符串以字符数组形式返回
find查找一个字符或字符串第一次出现的下标
substr从pos位置开始,向后截取n个字符,然后将其返回

7. string类非成员函数

函数功能
operator+追加字符串
operator<<输出运算符重载
operator>>输入运算符重载
getline获取一行字符串
rational operators字符串的大小比较

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

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

相关文章

创始人IP的精神修炼:于成长中积蓄力量

IP 经济席卷之下&#xff0c;众多企业家常被 “是否入局 IP”“能否做好 IP” 的焦虑裹挟。这种潜藏的精神内耗&#xff0c;对企业根基的侵蚀往往胜过业绩的起伏。著名文化学者于丹在全球创始人 IP 领袖高峰论坛上的洞见&#xff0c;为创始人 IP 的精神成长照亮了前路&#xff…

gbase8s数据库中对象元数据查询

最近整理了gbase8s数据库中常见的元数据的查询&#xff0c;包括表、视图、序列、包、类型、触发器、plsql等等&#xff0c;仅供参考。set environment sqlmode oracle; drop package DBMS_METADATA; create or replace package DBMS_METADATA is function GET_DDL(objtype varc…

常用hook钩子函数

爬虫Hook技术常用字段和勾子函数 目录 Hook技术概述网络请求相关Hook浏览器环境HookJavaScript引擎Hook加密算法Hook反爬虫检测Hook实际应用示例Hook工具和框架 Hook技术概述 Hook&#xff08;钩子&#xff09;技术是一种在程序运行时拦截和修改函数调用的技术。在爬虫中&a…

【解决方法】华为电脑的亮度调节失灵

华为电脑的亮度调节失灵 参考文章&#xff1a; 华为电脑屏幕亮度怎么调不了&#xff1f;华为电脑调节亮度没反应解决教程 亲测&#xff0c;在控制面板中卸载HWOSD&#xff0c;再重装有用。

【软考中级网络工程师】知识点之 DCC 深度剖析

目录一、DCC 是什么1.1 定义阐述1.2 作用讲解二、DCC 工作原理2.1 拨号触发机制2.1.1 感兴趣流量定义2.1.2 触发拨号过程2.2 链路建立流程2.2.1 物理链路连接2.2.2 数据链路层协议协商三、DCC 配置要点3.1 基础配置步骤3.1.1 接口配置3.1.2 拨号映射配置3.2 高级配置参数3.2.1 …

W5500之Socket寄存器区介绍

W5500之Socket寄存器区介绍1)、Socket n模式寄存器(Socket n Mode Register&#xff0c;简写Sn_MR)偏移地址为0x0000&#xff0c;可读写&#xff0c;复位值为0x00&#xff1b;Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0MULTI/MFENBCASTBND/MC/MMBUCASTB/MIP6BP3P2P1P0MULTI/MFEN占用“S…

酉矩阵(Unitary Matrix)和随机矩阵

先讨论酉矩阵&#xff08;Unitary Matrix&#xff09;的性质。1. 酉矩阵定义酉矩阵&#xff08;Unitary Matrix&#xff09;是复数域上的方阵&#xff0c;满足以下条件&#xff1a;其中&#xff1a;是 的共轭转置&#xff08;即 Hermitian 转置&#xff0c; &#xff09;。是单…

「iOS」————单例与代理

iOS学习单例代理代理模式的原理代理的循环引用设计模式单例 优点&#xff1a; 全局访问&#xff1a;单例模式确保一个类只有一个实例&#xff0c;并提供全局访问点&#xff0c;方便在整个应用中共享数据或功能。节省资源&#xff1a;由于只创建一个实例&#xff0c;可以减少内…

Microsoft Dynamics AX 性能优化解决方案

一、方案背景Microsoft Dynamics AX 是功能强大的企业ERP系统&#xff0c;虽然Microsoft 已推出基于云的现代化 ERP 平台 Dynamics 365 Finance and Operations&#xff0c;提供了更高的性能和持续更新&#xff0c;用来替代Dynamics AX。在考虑升级到Dynamics 365之前&#xff…

ARM保留的标准中断处理程序入口和外设中断处理程序入口介绍

在ARM架构中&#xff0c;中断处理是一个关键机制&#xff0c;它允许CPU在执行主程序时能够响应外部或内部的事件。对于ARM MCU&#xff08;微控制器单元&#xff09;而言&#xff0c;中断处理程序入口通常分为两类&#xff1a;ARM保留的标准中断处理程序入口和外设中断处理程序…

防火墙环境下的全网服务器数据自动化备份平台搭建:基于 rsync 的完整实施指南

一、项目总览 1.内容介绍 本文以 3 台 CentOS 7.9 服务器&#xff08;Web 服务器、NFS 服务器、备份服务器&#xff09;为载体&#xff0c;详解如何在全防火墙开启的前提下&#xff0c;搭建一套自动化数据备份平台&#xff1a;每日自动打包 Web 站点、NFS 共享数据及系统关键…

Spring之【Import】

目录 Import注解 源码分析 使用示例 ImportSelector 源码分析 使用示例 DeferredImportSelector 源码分析 使用示例 ImportBeanDefinitionRegistrar 源码分析 使用示例 Import注解 源码分析 处理组件类上的Import注解 将Import引入类对应的BeanDefinition对象添加…

RN项目环境搭建和使用-Mac版本(模拟器启动不起来的排查)

ReactNative&#xff1a; https://github.com/facebook/react-native https://reactnative.cn/docs/getting-started &#xff08;可以先通读一下这个&#xff09; 环境搭建 &#xff08;mac版&#xff09;https://juejin.cn/post/7404860612758765605 搭建之前确认版本&#x…

悬赏任务系统网站兼职赚钱小程序搭建地推抖音视频任务拉新源码功能详解二开

功能详解&#xff08;一&#xff09;登录与注册1、登录&#xff1a;打开系统用户端&#xff0c;输入已注册的手机号&#xff0c;若为首次登录或忘记密码&#xff0c;可通过 “找回密码” 功能&#xff0c;按提示验证身份后重置密码登录。 2、注册&#xff1a;点击 “注册” 按钮…

scikit-learn/sklearn学习|线性回归解读

【1】引言 前序学习进程中&#xff0c;对SVM相关的数学原理进行了探索和推导&#xff0c;相关文章链接包括且不限于&#xff1a; python学智能算法&#xff08;二十六&#xff09;|SVM-拉格朗日函数构造-CSDN博客 python学智能算法&#xff08;二十八&#xff09;|SVM-拉格朗…

音视频学习(五十一):AAC编码器

什么是AAC编码器&#xff1f; 高级音频编码&#xff08;Advanced Audio Coding&#xff0c;简称AAC&#xff09; 是一种有损音频压缩技术&#xff0c;旨在作为MP3的下一代标准而开发。它的主要目标是在比MP3更低的比特率下提供更好的音质&#xff0c;同时具备更强的灵活性和功能…

10-netty基础-手写rpc-定义协议头-02

netty系列文章&#xff1a; 01-netty基础-socket02-netty基础-java四种IO模型03-netty基础-多路复用select、poll、epoll04-netty基础-Reactor三种模型05-netty基础-ByteBuf数据结构06-netty基础-编码解码07-netty基础-自定义编解码器08-netty基础-自定义序列化和反序列化09-n…

计算机毕设缺乏创新点?基于大数据的快手平台用户活跃度分析系统给你思路【程序开发+项目定制】

精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、项目介绍二…

01.【面试题】在SpringBoot中如何实现多数据源配置

文章目录 1. 什么是多数据源 1.1 基本概念 1.2 传统单数据源 vs 多数据源 单数据源架构 多数据源架构 2. 为什么需要多数据源 2.1 业务场景需求 2.2 技术优势 3. 多数据源的实现方式 3.1 静态多数据源 3.2 动态多数据源 4. 环境准备 4.1 创建SpringBoot项目 pom.xml依赖配置 4.…

redis主从模型与对象模型

redis淘汰策略 首先我们要明确这里说的淘汰策略是淘汰散列表中的key-value&#xff0c;而不是value中的各个数据结构 过期key中 volatile-lru 从设置了过期时间的键中&#xff0c;移除最近最少使用的键&#xff08;LRU算法&#xff09;。适合需要优先保留高频访问数据的场景…