バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.


RWGVector(val)

形式

#include <rw/gvector.h>
declare(RWGVector,val)
implement(RWGVector,val)

RWGVector(val) a;   // val のベクトル

説明

このクラスは順序付き要素の集まりを表します。インデックスによってアクセスでき、配列として実装されます。要素の重複は許可されています。この型のオブジェクトは、標準 C++ ヘッダファイル <generic.h> で定義されているマクロを使用して宣言されます。このクラスは値ベースのコレクションなので注意してください。項目をコレクションにコピーしたり取り出したりします。

クラス val には次のものが必要です。

RWGVector のすべての型について、コードのどこかでマクロ implement に対する呼び出しを 1 回だけ行わなければなりません。

持続性

なし

#include <rw/gvector.h>
#include <rw/rwdate.h>
#include <rw/rstream.h>

declare(RWGVector, RWDate)   /* 日付のベクトルを宣言する */
implement(RWGVector, RWDate) /* 日付のベクトルを実装する */

main()  {
  RWGVector(RWDate) oneWeek(7);
  for (int i=1; i<7; i++)
    oneWeek(i) = oneWeek(0) + i;

  for (i=0; i<7; i++)
    cout << oneWeek(i) << endl;

  return 0;
}

プログラム出力:

04/12/93
04/13/93
04/14/93
04/15/93
04/16/93
04/17/93
04/18/93

公開コンストラクタ

RWGVector(val)();

空のベクトルを作成します。

RWGVector(val)(size_t n);

長さ n のベクトルを作成します。各要素の初期値は、無意味な値になることがあります。

RWGVector(val)(size_t n, val v);

長さ n のベクトルを作成し、各要素に値 v を割り当てます。

RWGVector(val)(RWGVector(val)& s);

コピーコンストラクタ。埋め込まれている値すべてを含めて、ベクトル全体をコピーします。

公開メンバー演算子

RWGVector(val)&
operator=(RWGVector(val)& s);

代入演算子。ベクトル全体をコピーします。

RWGVector(val)&
operator=(val v);

自分自身内のすべての要素に値 v を設定します。

val
operator()(size_t i) const;
val&
operator()(size_t i);

ベクトルの i 番目の要素への参照を返します。インデックス i は 0 〜 (ベクトル長 -1) の範囲になければなりません。境界検査は行いません。2 番目に記述したほうの演算子は、左辺値として使えます。

val
operator[](size_t i) const;
val&
operator[](size_t i);

ベクトルの i 番目の要素への参照を返します。インデックス i は 0 〜 (ベクトル長 -1) の範囲になければなりません。境界検査を行います。

公開メンバー関数

const val*
data() const;

自分自身の raw データへのポインタを返します。注意して使用してください。

size_t
length() const;

ベクトルの長さを返します。

void
reshape(size_t n);

ベクトルのサイズを変更します。ベクトルを小さくすると、いくつかの要素が切り捨てられます。大きくすると、増えた要素の値は不定になります。