首页 > 作文

一起来看看C++STL容器之string类

更新时间:2023-04-06 01:43:47 阅读: 评论:0

前言

为什么学习string类:

在c语言中,字符串是以’\0’结尾的集合,为了操作方便,在c标准库中提供一些str系列的函数(strstr,strcmp,strcpy……),但是这些库函数和字符串时分离的,不太符合oop的思想。稍不留神就会造成越界访问。

在oj题中,有关字符串的题目基本以string的二胡演奏形式出现,而且在常规的工作中,为了简单,方便,快捷,基本都是使用string类,很少有人会使用c库中的字符串操作函数。

1.标准库中的string类

1.string类是表示字符串的字符种类。

2.该类的接口与常规容器的接口基本相同,在添加一些专门用来操作string的常规操作。

3.string的底层是:basic_string模板类的别名。

4.不能操作多字节或者变长字符的序列。

在使用string的时候,必需包含头文件#include&疯狂猜歌 歌手lt;string>以及using namespace std;

2.string类的常用接口说明

2.1 string对象的常见构造

string() 构造空的string类对象string(const char* str)以常量字符创为参数构造string类string(size_t n,char我国的根本制度 ch)string对象中包含了n个字符cstring(const string& s)

拷贝构造函数

运行结果:

2.2 string类对象的容量操作

size返回字符串的有效长度length和size一致,推荐使用sizecapacity返回总空间大小clear清空有效字符,但是不对capacity有影响rerve为字符串预留空间empty判断字符串是否为空串,返回值为boolresize

2.2.1 rerve是如何开辟空间的

void rerve (size_t n=0)

运行结果:

说明在vs的环境下,rerve每次开辟的空间是前一次空间的约1.5倍。

2.2.2 clear 和 empty

void clear ()

bool empty() const

运行结果:

说明了clear只会清理有效的字符串,不会对空间的大小有影响,当clear后,empty的返回值为0,说明了此时的是s1是空字符串。

2.2.3 resize的用法

void resize(size_t n)

void resize(size_t n,char ch)

2.3 string类对象的访问以及遍历操作

operator[ ]begin+endrbegin+rend范围forc++11支持的更简洁的遍历方式

const_iterator begin()const

iterator begin()

运行结果:

范围for的使用

本质上,范围for调用的是迭代器。

2.4 string类对象的修改操作

push_back尾插字符chappend尾插字符串stroperator+=尾插字符ch/尾插字符串c_str返回c格式字符串find+nposrfindsubstr

2.4.1 push_back 和 append 以及operator+=

void push_back(char ch)

string& appengtx 765md(const char* str)

string& operator+=(char ch)

string& operator+=(const char* str)

运行结果:

operator +=可以尾插字符,也可以尾插字符串。实际上,operator +=尾插字符的时候,调用的是push_back,尾插字符串的时候,调用的是append。

2.4.2 find 和 rfind 以及 substr

size_t find(char c,size_t pos=0) const

size_t rfind(char c,size_t pos=npos)

string subst日本侵华时间r(size_t pos=0,size_t len=npos)

运行结果:

2.5 string非成员函数重载

operator+尽量少用,因为传值返回,导致深拷贝效率低operator<<输出运算符重载operator>>输出运算符重载getline获取一行字符串relational operator大小比较

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!

本文发布于:2023-04-06 01:43:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/ca8b2854e243fe5ae393d17856243dd9.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:一起来看看C++STL容器之string类.doc

本文 PDF 下载地址:一起来看看C++STL容器之string类.pdf

下一篇:返回列表
标签:字符串   字符   的是   操作
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图