stringタイプのさらなる検討

5021 ワード

[0.振り返って復習する]
前にstringタイプについて説明したが、表9.12は、このセクションで説明したstring操作を要約している.
//   9.12 

string s;               string   ,    s



string s(cp);           string   ,  cp     (     null    )C            



string s(s2);           string   ,        s2    



is >> s;            is                 ,   s



os << s;         s       os  



getline(is, s)       is        ,   s



s1 + s2          s1   s2     ,       string   



s1 += s2       s2     s1   



             (==   !=)      (<、<=、>   >=string      ,   (      )       

すでに使用されている操作に加えてstringタイプでは、ほとんどのシーケンスコンテナ操作がサポートされています.いくつかの態様では、stringタイプは文字コンテナと見なすことができる.いくつかの特殊な操作に加えてstringタイプはvectorコンテナと同じ操作を提供します.stringタイプはvectorコンテナとは異なり、スタックでコンテナを操作することはサポートされていません.stringタイプではfront、back、pop_は使用できません.back操作.
// string         :

1.typedef:       。

    (size_type, iterator, const_iterator,reverse_iterator, const_reverse_iterator, 

    difference_type, value_type, reference, const_referenc )



2.       。

    (C<T> c; C c(c2); C c(b, e); C c(n, t))



3. vector              。

    (c.push_back(t); c.push_front(t); c.inset(p, t); c.insert(p, n, t); c.insert(p, b, e); )

      :   vector      string        push_front   。



4.     。

    (c.size(); c.max_size(); c.empty(); c.resize(); c.resize(n, t);)



5.     at   。

    (c[n], c.at(n) )



6. begin   end   。

    (c.begin(); c.end(); c.rbegin(); c.rend(); )



7. erase   clear   。

    (c.erase(p); c.erase(b, e); c.clear(); )



8.     。

    (c1=c2; c1.swap(c2); c.assign(b, e); c.assign(n, t); )



9.   vector        ,string           。

      ,string      capacity   reserve   。

 
stringタイプコンテナ操作を提供すると、vectorオブジェクトを操作するプログラムをstringオブジェクトを操作するために書き換えることができることを意味します.
たとえば、次のプログラムでは、反復器を使用してstringオブジェクトの文字を標準出力デバイスに1行ずつ出力します.
string s("Hiya!");

string::iterator iter = s.begin();

while (iter != s.end())

cout << *iter++ << endl; // postfix increment: print old value

共有コンテナの操作に加えてstringタイプは、このタイプ特有の操作をサポートします.このセクションの残りのセクションでは、他のコンテナに関連する操作の補足バージョンや、新しい関数など、これらのstringタイプ特有の操作をレビューします.stringタイプの補足関数は後で説明します.
stringタイプは、string固有の他のコンテナに共有されない属性をサポートするために、一部のコンテナ操作に追加バージョンを提供します.たとえば、いくつかの操作では、文字配列を指すポインタパラメータを指定できます.これらの操作は、文字列が空の文字で終わるかどうかにかかわらず、標準ライブラリstringオブジェクトと文字配列との緊密な相互作用をサポートします.他のバージョンでは、プログラマは下付き文字のみを使用でき、反復器は使用できません.これらのバージョンでは、要素を位置でのみ操作できます.開始位置を指定し、場合によってはカウンタを指定して、操作する要素または要素のセグメントを指定する必要があります.
/**

* string                。
* * , 。 *
* 《 string ( ) 》。 *
*/