当前位置:首页 » 《随便一记》 » 正文

c++中string的使用!!!(适合初学者 浅显易懂)

13 人参与  2024年03月11日 09:16  分类 : 《随便一记》  评论

点击全文阅读


我们先初步的认识一下string,string底层其实是一个模版类

typedef basic_string<char> string;

我们先大致的把string的成员函数列举出来

class string

{

        private:

        char * str;

        size_t size;

        size_t capacity;

};

1.string的六大默认函数

1.1 构造函数、拷贝构造

注:以下只介绍常用的几个构造函数 以下同理

1. string();

2. string(const char *s); 

3. string(const string& str); 拷贝构造

1.2析构函数

~string();

1.3赋值运算符重载

1.string& operator=(const char* s);

2.string& operator=(const string& str);

3.string& operator=(char c);

2.string的遍历

2.1下标遍历

底层物理空间是连续的情况下,我们可以使用下标遍历

string& operator[] (size_t pos);

const string& operator[] (size_t pos) const;

2.2 iterator迭代器

typedef char* iterator

typedef const char* const_iterator

返回第一个元素

iterator begin();

const_iterator begin() const;

返回最后一个元素

iterator end();

const_iterator end() const;

2.3范围for

范围for看着很高大上,其实底层跟迭代器差不多的用法

3.string中的capacity

size_t size() const; 返回string中的有效字符个数

void resize(size_t n); 调整string中的有效字符个数

size_t capacity() const; 返回string中能存储有效字符的空间

void reserve(size_t n = 0); 调整string中能存储有效字符的空间

注意:不同的编译器扩容机制会有些许不同

void clear(); 清除当前字符串内容,既将size赋值为0

4.string中的增删查改

4.1插入

尾插:

string& operator+= (const string& str) ;

string& operator+=(const char* s);

string& operator+=(const cahr c);

void push_back(cahr c);

头插:

在pos位置上插入n个字符字符c/字符串str,并返回该字符的位置

string& insert(size_t pos, size_t n,char c); 

string& insert(size_t pos, const char* str);

 4.2删除

删除从pos位置开始的len个元素,若len太大,则删除全部元素        

string& erase(size_t pos = 0,size_t len = npos); 

4.3查找string中的字符或者字符串

size_t find (char c, size_t pos = 0) const; 返回c在string中从pos位置开始第一次出现的位置

size_t find (const char* s, size_t pos = 0) const; 返回子串s在string中从pos位置开始第一次出现的位置

4.4改变string中一段字符

string & replace(size_t pos,size_t len,const string* str);  将pos位置开始,跨越len个字符替换为str


点击全文阅读


本文链接:http://zhangshiyu.com/post/77361.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1