c++顺序容器(3)

1.额外的string操作

除了前面大多数顺序容器的共同操作外,string类型还提供了string和c风格字符数组之间的相互转换,且允许我们用下标代替迭代器版本。

string s(cp,n);//cp为数组,拷贝前n个,数组需以空字符结尾,拷贝到空字符结束    string s(s2,pos2);//s2为string,从pos2开始的字符拷贝   string s(s2,pos2,len2);

s.substr(m,n);取s字符的m位置到n位置

string还有其他insert和erase版本,以及两个额外的成员函数append和replace

string搜索操作:6个不同的搜索函数,每个函数4个重载版本。find(a),//a第一次出现的位置   rfind(a);//最后一次出现的位置。find_first_of(a);//a中任何一个字符第一次出现的位置

find_last_of(a); find_first_not_of(a);    find_last_not_of(a);     a的形式   c,pos     s2,pos      cp,pos    cp,pos,n

string比较函数compare ,类似于c风格字符串中的strcmp。

string转化为数值 string s2="pi=3.14"    d=stod(s2.substr(s2.find_first_of("+-.0123456789")))

2.容器适配器

三个顺序容器适配器:stack、queue、priority_queue.容器、迭代器和函数都有适配器。为了使其行为像另外一个类型、函数或迭代器,适配器相当于在底层顺序容器类型之上定义了一个新的接口。

定义适配器:stack<int> stk(deq);//从deq拷贝元素到stk

所有适配器都要求容器具有添加、删除以及访问尾元素的能力。stack(除array和forward_list外),queue(list,deque),priority_queue(vector,deque)

栈适配器:stack。栈默认deque实现。操作有s.pop();//删除栈顶元素,不返回该值。s.push();s.emplace();s.top();//返回栈顶元素,但不将该元素弹出

队列适配器:queue和priority_queue.queue默认基于deque实现。priority_queue默认基于vector。

posted on 2016-03-11 11:55  sccy  阅读(167)  评论(0编辑  收藏  举报