Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: RWGVector(val)

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

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 には次のものが必要です。

  - デフォルトコンストラクタ

  - コピーの意味の定義 (`val::val(const val&)` または同等のもの)

  - 代入の意味の定義 (`val::operator=(const 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);

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