string容器

c++在STL中加入了string类型,对字符串常用的功能进行了封装,使操作起来更方便,不必担心内存是否足够、字符串的长度等问题。

用string的时候需要:

1.#include

2.using namespace std

定义string的方法:

string name;

//name是字符串变量的名字

可以在定义字符串的同时进行初始化

例如:string str=“abcd”;

1.string的访问:

(1)像普通数组一样操作

Android 包含String string包含方法_字符串


若整体输入输出

Android 包含String string包含方法_时间复杂度_02


(2)通过迭代器访问

迭代器定义方法:

string::iterator it;

Android 包含String string包含方法_Android 包含String_03


2.string的运算

加法运算:加法运算时,左右操作数必须要有一个string类型

Android 包含String string包含方法_Android 包含String_04


关系运算:按照字典序比较

Android 包含String string包含方法_Android 包含String_05


3.string常用函数

(1).length() .size()

返回字符串的长度,时间复杂度o(1)

(2).clear()

清空所有元素 时间复杂度o(1)

Android 包含String string包含方法_时间复杂度_06


(3).substr() substr(pos,len) 返回从pos号位置开始,长度为len的子串 时间复杂度为o(n)

Android 包含String string包含方法_字符串_07


(4).insert() 时间复杂度为o(n)

  1. insert(pos,string) 在pos号位置插入字符串string
  2. insert(it1,it2,it3) it1为原字符串欲插入位置,it2,it3为待插入字符串首尾迭代器(左闭右开区间)

    (5).erase() 时间复杂度 o(n)
    erase(it) 删除it处的元素 it为欲删除位置的迭代器

    erase(first,last) 删除first 到 last区间的元素 first last [first,last)

    erase(pos,length) 删除从pos号开始,length个元素

    (6).find() 时间复杂度o(n*m)
    函数返回要查询的串在母串中第一次出现的位置,若母串中没有查询到子串,返回string::npos 其本身值为-1,也可以认为是unsigned int的最大值 4294967295


    (7).replace()
  3. s1.replace(pos,len,s2)把s1从pos位置开始长为len的子串替换为s2
  4. s1.replace(it1,it2,s2) 把s1的迭代器it1,it2范围内(左闭右开)的子串替换为s2

    //当然还有其他很多 这些只是常用的