stl入门 --string类

主要有:vector  , algorithm

容器    ,可以存储基本数据类型,也可以存储指针,类  

vector<int> v1 ,  v1.push_back(1)  v1.push_back(1) v1.push_back(1) 把 1.2.3 存储进容器。

vector<int>::iterator  it  = v1.begin();定义一个迭代器(一个指针)。  可以使用 it++ ,从v1.begin() 到v1.end()遍历该容器。


序列式容器:vector .  deque.  list  元素位置取决于插入时机

关联式容器: set  multiset  map  multimap  元素位置取决于特定的排序准则,和插入顺序无关。


string 类的初始化:

    string s1 = "aaaaa" ;

    string s2("bbbbbb");

    string s3 = s1 ; 

    string s4(10,'a')   初始化为10个a

string 类的遍历:

    <1> 数组方式, for( int i =0 ;  i< s1.length() ;  i++) 

     <2> 迭代器  , for( string::iterator it = s1.begin();  it != s1.end();  it++)

string中去字符  :

    <1>   []            越界会终止

     <2> s1.at(1)     ,越界会抛出异常。

string转化为 char * ,即内存首地址。       s1.c_str()   ;

将string中的内容拷贝到某一内存空间中。char buff[128] ;  s1.copy( buff, 3 ,0 ) 从第一个字符开始拷贝。索引从0开始。

字符串连接

 string s1="aaaa" ;  string s2 ="bbbb" ;   

<1>  s1 = s1+s2 ;  

<2> s1.append(s2) ;

字符串查找或字符查找:

s1.find("str1",0)  ,从索引0开始查找,返回地第一次出现的索引。

字符串替换:

s1.replace(pos, n , "str1")  从索引pos开始删除n个字符,并插入str1

字符串删除:

string::iterator  it   =  find(s1.begin() , s1.end() , 'a' ) 

if ( it != s1.end() )   s1.erase(it)  , 删除第一个a 。

字符串插入:

s1.insert(pos , "str2") ;

transform(s1.begin(), s1.end(), s1.begin(), function )  将s1从头到尾进行function转化,并存入s1.begin .

猜你喜欢

转载自blog.csdn.net/u013565071/article/details/79476275
今日推荐