ToB企服应用市场:ToB评测及商务社交产业平台

标题: String 类和 STL (Standard Template Library) [打印本页]

作者: 饭宝    时间: 2024-3-31 18:36
标题: String 类和 STL (Standard Template Library)
目录

一. string 类

1. 构造字符串

<ul>
       先来看string的构造函数。毕竟,对于类而言,最重要的内容之一是,有哪些方法可用于创建其对象。程序清单1使用了string的7个构造函数(用ctor标识,这是传统C++中构造函数的缩写)。表1简要地描述了这些构造函数,它首先按顺序简要描述了程序清单1使用的7个构造函数,然后列出了C++11新增的两个构造函数。使用构造函数时都进行了简化,即隐藏了这样一个事实:string实际上是模板具体化basic_string的一个typedef,同时省略了与内存管理相关的参数。 size_type是一个依赖于实现的整型,是在头文件string中定义的。string类将string::npos定义为字符串的最大长度,通常为unsigned int的最大值。以表格中使用缩写NBTS(null终止string)来表示以空字符结束的字符串一一传统的C字符串。
  
表1 string类的构造函数

     构 造 函 数
      描述
                string(const char * s)
      将string对象初始化为s指向的NBTS
            string(size_type n, char c)
      创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c
            string(const string & str)
      将一个string对象初始化为string对象str(复制构造函数)
            string()
      创建一个默认的string对象,长度为0(默认构造函数)
            string(const char * s, size_type n)
      将string对象初始化为s指向的NBTS的前n个字符,即使超过了NBTS结尾
            template
string(Iter begin, Iter end)
      将string对象初始化为区间[begin, end)内的字符,其中begin和end的行为就像指针,用于指定位置,范围包括begin在内,但不包括end
            string(const string & str, size_type pos, size_type n = npos)
      将一个string对象初始化为对象str中从位置pos开始到结尾的字符,或从位置pos开始的n个字符
            string(string && str) noexcept
      这是C++11新增的,它将一个string对象初始化为string对象str,并可能修改str(移动构造函数)
            string(initializer_list il)
      这是C++11新增的,它将一个string对象初始化为初始化列表il中的字符
    程序清单1 :[code]#include #include // using string constructorsint main(){    using namespace std;    string one("Lottery Winner!"); // ctor #1    cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4