七、輸入/輸出流-- 七、輸入/輸出流--基於字符串的流---basic_istringstream 模板

2 basic_istringstream 模板

basic_istringstream模板支持讀取basic_string 模板類的對象;使用basic_stringbuf類對象控制相關存儲區域;

定義:

template < class charT,                           // basic_istringstream::char_type
           class traits = char_traits<charT>,     // basic_istringstream::traits_type
           class Alloc = allocator<charT>         // basic_istringstream::allocator_type
           > class basic_istringstream;

2.1 basic_istringstream 構造函數

//default (1)   
explicit basic_istringstream (ios_base::openmode which = ios_base::in);

//initialization (2)    
explicit basic_istringstream (
    const basic_string<char_type,traits_type,allocator_type>& str,
    ios_base::openmode which = ios_base::in);

//copy (3)  
basic_istringstream (const basic_istringstream&) = delete;

//move (4)  
basic_istringstream (basic_istringstream&& x);

說明:
1. 前兩個構造函數主要用於構造累的對象以及其初始化緩衝區;
2. 第三個:被禁止的構造函數
3. 第四個:右值拷貝構造函數

2.2 basic_istringstream 成員函數


2.2.1 std::basic_istringstream::str

basic_string<char_type,traits_type,allocator_type> str() const;

void str (const basic_string<char_type,traits_type,allocator_type>& s);

說明:
1. 返回一個包含流的當前內容的副本的basic_string對象。
2. 將str設置爲流的內容,丟棄任何先前的內容。該對象保留其打開模式:如果這包括ios_base :: ate,寫入位置將移動到新序列的末尾。


2.2.2 std::basic_istringstream::rdbuf

  1. basic_ostringstream和basic_stringstream兩個類的rdbuf從basic_ios繼承,函數功能類似;
basic_stringbuf<char_type,traits_type,allocator_type>* rdbuf() const;

說明:
1. 返回指向內部basic_stringbuf對象的指針。


2.2.3 std::basic_istringstream::operator=

【c++11】新標準

//copy (1)  
basic_istringstream& operator= (const basic_istringstream&) = delete;

//move (2)  
basic_istringstream& operator= (basic_istringstream&& rhs);

左值拷貝被刪除,只能使用右值賦值。


2.3.4 std::basic_istringstream::swap

【c++11】標準

void swap (basic_istringstream& x);

交換x和*this之間的所有內部數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章