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

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


RWTPtrVector<T>

形式

#include <rw/tpvector.h>
RWTPtrVector<T> vec;

説明

このクラスは、型 T のオブジェクトへのポインタから成る、パラメータ化された単純なベクトルです。コレクション内にどれだけのオブジェクトを保持しなければならないかが正確に分かっているときは、このクラスは非常に便利です。コレクションにいくつあるか分からないオブジェクトを挿入したいのであれば、クラス RWTPtrOrderedVector<T> を使用する方をお勧めします。

クラス T はどんな型でも構いません。

持続性

同形

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

main()  {
  RWTPtrVector<RWDate> week(7);

  RWDate begin;   // 今日の日付

  for (int i=0; i<7; i++)
    week[i] = new RWDate(begin++);

  for (i=0; i<7; i++)
  {
    cout << *week[i] << endl;
    delete week[i];
    }
  return 0;
}

プログラム出力:

March 16, 1996
March 17, 1996
March 18, 1996
March 19, 1996
March 20, 1996
March 21, 1996
March 22, 1996

公開コンストラクタ

RWTPtrVector<T>();

長さゼロの空のベクトルを作成します。

RWTPtrVector<T>(size_t n);

長さ n のベクトルを作成します。要素の初期値は未定で、無意味な値である可能性があります。

RWTPtrVector<T>(size_t n, T* ival);

長さ n のベクトルを作成し、各要素の値を ival に初期化します。

RWTPtrVector<T>(const RWTPtrVector& v);

自分自身を v のシャローコピーとして作成します。作成後、ポインタは 2 つのベクトルで共有されます。

公開演算子

RWTPtrVector<T>&
operator=(const RWTPtrVector<T>& v);

自分自身に v のシャローコピーを設定します。設定後、2 つのベクトルは同じ長さを持ち、ポインタを共有します。

RWTPtrVector<T>&
operator=(T* p);

自分自身内のすべての要素を項目 *p を指すように設定します。

T*&
operator()(size_t i);
T*
operator()(size_t i) const;

ベクトル内の i 番目の値を返します。最初に記述した可変要素は左辺値として使用できますが、2 番目のものは使用できません。インデックス i は 0 〜 (ベクトル長 -1) の範囲になければなりません。境界検査は行いません。

T*&
operator[](size_t i);
T*
operator[](size_t i) const;

ベクトル内の i 番目の値を返します。最初に記述した可変要素は左辺値として使用できますが、2 番目のものは使用できません。インデックス i は 0 〜 (ベクトル長 -1) の範囲になければなりません。範囲外にあると TOOL_INDEX 型の例外が発生します。

公開メンバー関数

T* const *
data() const;

ベクトルの生データへのポインタを返します。この関数の使用には注意を要します。

size_t
length() const;

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

void
reshape(size_t N);

ベクトルの長さを N に変更します。その結果ベクトルが長くなると、その部分の初期値は不定になります。

void
resize(size_t N);

ベクトルの長さを N に変更します。その結果ベクトルが長くなると、その部分の初期値は NULL に設定されます。