现在的位置: 首页 > 综合 > 正文

string 类和标准模板库

2013年09月13日 ⁄ 综合 ⁄ 共 1345字 ⁄ 字号 评论关闭

   sting类:

string类包含大量的方法,其中包括了若干构造函数,用于将字符串赋给变量、合并字符串、比较字符串和访问各个元素的重载操作符以及用于在字符串中查找字符和子字符串的工具等。

string类输入:

对于C-风格字符串,有3种方式:

char info[100];

cin >> info;             //read a word 

cin.getline ( info,100);    //read a line ,discard \n

cin.get(info,100);        //read a line,leave \n in queue

string还提供了:方法capacity()返回当前分配给字符串的内存块的大小,而

reserve() 方法让您能够请求内存块的最小长度。

auto_ptr 类:

这是一个模板类,用于管理动态内存分配的用法。

上图说明了auto_ptr 和常规指针在行为方面的差别

因此,要转换remodel()函数,应按下面的3个步骤进行:

1、包含头文件memory

2、将指向string的指针替换为指向stringauto_ptr对象。

3、删除delete语句。

    auto_ptr是一种智能指针(smart pointer)——类似于指针,但特性比指针更多。

标准模板库STL提供了一组表示容器、迭代器、函数对象和算法的模板。所有的STL容器都提供了一些基本方法,其中包括size()——返回容器中元素数目、swap()——交换两个容器的内容、begin()——返回一个指向容器中第一个元素的迭代器、end()——返回一个表示超过容器尾的迭代器。

代表性的STL函数:fot_each()random_shuffle()sort()。的for_each()函数可用于许多容器类,它接受3个参数。前两个是定义容器中区间的迭代器,最后一个是指向函数的指针。For_each()函数将被指向的函数应用于容器区间中的各个元素。被指向的函数不能修改容器元素的值。可以用for_each()函数来代替for循环。

迭代器的特征:

1、应能够对迭代器执行解除引用的操作,以便能够访问它引用的值。如果p是一个迭代器,则应对*p进行定义。

2、应能够将一个迭代器赋给另一个。如果pq都是迭代器,则应对表达式p = q进行定义。

3、应能够将一个迭代器与另一个进行比较,看它们是否相等。即如果pq都是迭代器,则应对p= =qp=q进行定义。

4、应能够使用迭代器遍历容器中的所有元素,这可以通过为迭代器p定义++p p++来实现。

    

STL的方法:首先,每个容器类(vectorlistdeque等)定义了相应的迭代器类型。对于其中的某个类,迭代器可能是指针;而对于另一个类,则可能是对象。其次,每个容器类都有一个超尾标记,当迭代器递增到超越容器的最后一个值后,这个值将被赋给迭代器。

STL定义了5种迭代器,分别是输入迭代器、输出迭代器、正向迭代器、双向迭代器和随机访问迭代器。

STL容器种类:dequelistqueueprioritypriority_queuestackvectormapmultisetbitset

抱歉!评论已关闭.