`
isiqi
  • 浏览: 16502188 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

string 类和标准模板库

 
阅读更多

sting类:

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

string类输入:

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

charinfo[100];

cin>>info;//readaword

cin.getline(info,100);//readaline,discard\n

cin.get(info,100);//readaline,leave\ninqueue

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

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

auto_ptr类:

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

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

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

1、包含头文件memory

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

3、删除delete语句。

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

标准模板库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定义++pp++来实现。

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

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

STL容器种类:dequelistqueueprioritypriority_queuestackvectormapmultisetbitset

分享到:
评论

相关推荐

    C++Primer第四版英文版

    分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间...重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容...

    C++ Primer第四版 中文版(第一卷)

    分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间...重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容...

    一个string模板类

    在C++中,标准库提供了一个名为`std::string`的类,用于处理字符串。然而,在某些特定的项目需求下,可能需要对`std::string`进行优化,以提高性能或者增加特定功能。标题提到的"一个string模板类"正是为了解决这样...

    自学编程语言资料合集2

    分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑运算符、函数重载和函数模板、内存模型和名称空间...处理技术、string类和标准模板库、输入/输出、C++11新增功能等内容...

    C++的标准模板库

    C++的标准模板库(STL)是C++编程中不可或缺的一部分,它提供了高效且灵活的数据结构和算法。STL的核心概念包括容器、迭代器、算法和函数对象。在这篇文章中,我们将重点讨论其中两个常见的容器——`vector`和`map`...

    STL 编写的CString 标准模板库

    然而,标题提到的是"STL编写的CString",这意味着我们将探讨一个与MFC中可能不同的实现,即使用标准模板库(STL)来创建类似于`CString`的功能。STL是C++的一个核心部分,提供了容器、迭代器、算法和函数对象等工具,...

    第4章-C++-标准库STL-string类.ppt

    C++标准库STL中的String类是C++标准模板库(STL)中的一个重要组件,提供了字符串基本操作。该类定义在<string>头文件中,并提供了许多有用的成员函数和属性来操作字符串。 String类的特性 String类有以下特性: ...

    cppPrimerPlus-six--master.zip

    分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间...重用、友元、异常处理技术、string类和标准模板库、输入/输出等内容...

    第4章C++标准库STLstring类.ppt

    C++标准库STLstring类 C++标准库STLstring类是C++标准库中的一个基本组件,...C++标准库STLstring类是一个功能强大且灵活的字符串处理类,提供了多种构造函数、成员函数和运算符重载,可以满足各种字符串处理需求。

    简单的string类

    首先,`std::string`是C++标准库中的一个类模板,它表示可变长度的字符序列。在声明时,你可以通过构造函数初始化字符串,例如: ```cpp std::string str = "Hello, World!"; ``` 这将创建一个包含"Hello, World!...

    vc模板库手册vc模板库手册

    本手册旨在帮助开发者更好地理解和利用VC模板库来提升软件开发的效率和质量。 模板库的核心概念包括: 1. **模板类**:模板类允许开发者创建可以接受不同数据类型的类。例如,`std::vector<T>`就是一个模板类,T...

    STL标准模板库的例子

    STL(Standard Template Library,标准模板库)是C++的一个强大的组件,它包含了大量实用的数据结构和算法,极大地提高了开发效率。STL主要由三个部分组成:容器、算法和迭代器。 - **容器**:用于存储数据,可以存储...

    POJ100题_C++_源码

    4. T064.cpp - 可能涉及到字符串处理,如模式匹配,C++的string类和标准模板库(STL)的算法函数(如find,substr)在这里发挥作用。 5. T079.cpp - 可能是递归或回溯问题,比如八皇后问题,C++的递归函数和if条件...

    string类的构造方法_String类重要吗_C++_STL_string_

    在C++标准模板库(STL)中,`std::string`类是一个极其重要的容器,它专门用于存储、操作和管理字符串数据。标题中的“string类的构造方法”揭示了我们要探讨的核心内容——如何初始化和创建`std::string`对象。`std...

    C++标准模板库string类的介绍与使用讲解

    C++标准模板库string类是一个非常有用的字符串处理类,提供了许多实用的成员函数和操作符,方便开发者对字符串的操作和处理。在实际开发中,string类的应用非常广泛,例如字符串处理、文件输入/输出、网络编程等。...

    C Primer Plus 学习笔记

    - **string类和标准模板库STL**:`std::string`提供了丰富的字符串操作,STL包括容器、迭代器、算法和分配器。 - **输入/输出和文件**:使用`iostream`库进行标准输入输出,以及文件的读写操作。 - **C++新标准探幽*...

    STL标准模板库源代码分享

    STL,全称为Standard Template Library(标准模板库),是C++编程语言中不可或缺的一部分,它提供了高效、可重用的数据结构和算法。STL的主要设计理念是泛型编程,即通过模板来实现数据结构和算法的通用性,使得...

Global site tag (gtag.js) - Google Analytics