[翻訳]C++STL容器参考マニュアル(第一章<br>)

8214 ワード

本誌に戻る
http://www.cplusplus.com/reference/array/array/.
1.std:array(C+11サポート)
template<クラスT,size_t N>class array
配列クラス
配列容器は固定長さのシーケンス容器であり、厳密な直線順に一定量の要素を格納する.
配列容器の内部は、要素自体以外のいかなるデータも維持していません.(自分のsizeさえ保存していません.これはコンパイル時に定められたテンプレートパラメータです.)配列容器の記憶空間の利用効率は通常の配列と同じ高さである.配列類は配列以外にいくつかのメンバーと大域関数を増加させただけで、これらの配列が標準的な容器として使用できるようになります.
他の標準コンテナとは違って、配列容器は固定サイズを有し、allocatorを用いて要素メモリ空間の割り当てを管理しないで、配列容器は様々なメンバーを集めて、固定長さの配列をカプセル化している.したがって、配列容器は動的に拡張されたり、切断されたりすることができない(vectorを参照して、これは拡張可能な類似の容器である).
長さ0と定義された配列容器は合法的であるが、参照*(メンバfrontbackダタ)を解くことはできない.
*訳者:引用を解くことは、引用の逆方向の操作であり、次のような例があります.
1 int a=0;

2 int* pa=&a;    //   &a     

3 *pa=100;       //   *pa      
標準ライブラリの他の容器とは違って、交換*2つの配列容器の操作は、それぞれの元素を交換する容器に関連しています.通常は非常に効果的な操作です.一方で、このような実現によって、彼らのローズマリーは常に元の容器との関連を維持しています.
*交換操作は、配列容器に提供される方法(関数)です.この方法により、2つの配列容器内の要素を交換できます.swapを参照してください.
配列容器の他のユニークな特徴は、tupleオブジェクトとして動作することができることである.「array」ヘッダファイルにget関数が積載され、tupleのように配列容器の要素にアクセスすることができる.同様に、tuple_sizeおよびtuple_elementを使用して、配列容器のサイズと要素タイプを取得することもできる.
2.容器の属性
シーケンス
シーケンスコンテナの要素は厳密な線形順序で保存されている.各要素にアクセスするときは、この要素のシーケンス内の位置によってアクセスされます.
連続記憶空間
シーケンスコンテナの要素は連続メモリ空間に格納されているので、任意の要素にランダムにアクセスする時間は同じです.要素を指すポインタは、他の要素にオフセットアドレスを介してアクセスすることができます.
固定長さ
容器はコンストラクタとコンストラクタを用いて,必要な空間を静的に分配した.コンテナのサイズはコンパイル時に決定されました.(運転時)スペースや時間的な出費はありません.
3.テンプレートのパラメータ
パラメータT
コンテナに含まれる要素の種類.クラスメンバーとarray::value_typeは同じです
パラメータN
配列容器の大きさは、要素の数を表します.
arrayメンバー関数の参照または説明では、これらのパラメータ名はデフォルトでテンプレートパラメータ*として使用されます.
*翻訳者:たとえばここでtemplate<クラスT、sizut N>class array
4.メンバータイプ
以下の別名はいずれもarrayのメンバータイプです.彼らはパラメータタイプとメンバー関数の戻り値のタイプとして広く使われています.
 
メンバータイプ
definition
notes
value_タイプ
The first template parameter(T)
 
reference
value_type&
 
constreference
const value_type&
 
pointer
value_タイプ*
 
constpointer
const value_タイプ*
 
iterator
a.  ラドm access iterator ト value_タイプ
convertible to constiterator
constiterator
a.  ラドm access iterator ト const value_タイプ
 
reverse_.iterator
reverse_.iterator<iterator>
 
constreverse_.iterator
reverse_.iterator〈const_〉iterator>
 
size_タイプ
size_t
unsigned integral type
ディfferenceタイプ
ptrdif_t
signed integral type
5.メンバー関数
サンデー
begin
容器の一番先にあるローズマリーを返します. 
(共有メンバー関数)
end
容器の最後の端を指すサンデーを返します. 
(共有メンバー関数)
rbegin
コンテナの最後の端に戻す逆ローズマリー 
(共有メンバー関数)
レンド
コンテナの一番先を指す逆ローズマリーを返します.(共有メンバー関数)
cbegin
容器の一番先に向けた読み取り専用のローズマリーを返します. 
(共有メンバー関数)
cend
容器の最後に向かっている読み取り専用のディケンサを返します. 
(共有メンバー関数)
クレビギン
コンテナの最後の端に戻す逆読み取り専用のディケンサ 
(共有メンバー関数)
crend
容器の一番前に向けた逆読み取り専用のローズマリーを返します. 
(共有メンバー関数)
*ここの「最先」と「最後端」はそれぞれ容器の中の最初の元素と容器の中の最後の要素を指します.読み取り専用のディケンサ自体は増減操作ができますが、読み取り専用のディケンサを使って指す要素は読み取り専用です.
容量
size
要素の数を返します. 
(共有メンバー関数)
max_size
戻り容器の最大保存可能要素数 
(共有メンバー関数)
empty
配列容器が空かどうかをテストします. 
(共有メンバー関数)
要素のアクセス
operator[]
アクセス要素 
(共有メンバー関数)
at。
アクセス要素 
(共有メンバー関数)
front
最初の要素にアクセス 
(共有メンバー関数)
back
最後の要素にアクセス 
(共有メンバー関数)
ダタ
ポインタ*を返します. 
(共有メンバー関数)
*ダタが返すポインタは、実は最初の要素を指すポインタです. 
変更器
fill
値を使ってコンテナ全体を塗りつぶします. 
(共有メンバー関数)
swap
容器の内容を交換する 
(共有メンバー関数)
6.リロードされた非メンバ関数
get(array)
要素(タプルインターフェース)の取得(テンプレート関数)
relational operators(array)
配列容器の関係演算子(テンプレート関数)
7.特化非メンバー類
tuple_element<array>
配列タイプのタプル要素(クラステンプレートの特化)
tuple_size<array>
配列タイプのタプル長特性(クラステンプレートの特化)