C++ 头文件系列(sstream)

1. 简介

这个头文件主要定义了基于字符串类(string类)的流4个模版

  • basic_stringbuf
  • basic_istringstream
  • basic_ostringstream
  • basic_stringstream

8个类型

  • istringstream
  • ostringstream
  • stringstream
  • stringbuf
  • wistringstream
  • wostringstream
  • wstringstream
  • wstringbuf

2. basic_stringbuf模版

58aba3d7c6afd.png

basic_stringbuf 继承自basic_streambuf,由于它们的功能非常相似,所以它自身仅定义了少量的几个公有函数虚函数(虚函数不再赘述,详见此博客virtual函数小节)。

2.1 公有函数

  • str : 获取设置字符串缓冲区的内容。
  • operator =(移动语义) : 移动语义的赋值运算符。
  • swap : 交换两个对象内容。

2.2 全局模版函数

  • swap : 基本上每个标准类都回提供swap的两种形式:成员函数 和 全局模版。

3. 基于basic_stringbuf的流类

  1. basic_istringstream内部使用basic_stringbuf来存储和控制字符串内容。 它 继承自basic_istream
  2. basic_ostringstream内部使用basic_stringbuf来存储和控制字符串内容。 它继承自basic_ostream
  3. basic_ostringstream内部也使用basic_stringbuf来存储和控制字符串内容。 它继承自basic_iostream

因为很多功能都由基类提供了(面向对象的可重用性),这些模版只定义了几个相同的函数。

3.1 公有函数

  • rdbuf : 返回内部的basic_stringbuf对象指针。
  • str : 返回、设置字符串内容。
  • operator = (移动语义)
  • swap

3.2 全局模版函数

  • swap

4 typedefs

窄字符版本(char):

  • typedef basic_istringstream< char > istringstream;
  • typedef basic_ostringstream< char > ostringstream;
  • typedef basic_stringstream< char > stringstream;
  • typedef basic_stringbuf< char > stringbuf;

宽字符版本(wchar_t):

  • typedef basic_istringstream< wchar_t > wistringstream;
  • typedef basic_ostringstream< wchar_t > wostringstream;
  • typedef basic_stringstream< wchar_t > wstringstream;
  • typedef basic_stringbuf< wchar_t > wstringbuf;

转载于:https://www.cnblogs.com/lgxZJ/p/6422851.html

你可能感兴趣的:(c/c++)