バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
#include <rw/tvdlist.h> RWTValDlist<T> list;
注 - 標準 C++ ライブラリがない場合は、ここで説明しているインタフェースを使用してください。標準 C++ ライブラリがある場合は、クラスリファレンスの説明にあるインタフェースを使用してください。
パラメータ T は、リスト内に挿入されるオブジェクトの型を表すもので、クラスまたは基本型です。またクラス T には次のものが必要です。
#include <rw/tvdlist.h> #include <rw/rstream.h> #include <string.h> class Dog { char* name; public: Dog( const char* c = "") { name = new char[strlen(c)+1]; strcpy(name, c); } ~Dog() { delete name; } // コピーコンストラクタを定義する Dog(const Dog& dog) { name = new char[strlen(dog.name)+1]; strcpy(name, dog.name); } // 代入演算子を定義する void operator=(const Dog& dog) { if (this!=&dog) { delete name; name = new char[strlen(dog.name)+1]; strcpy(name, dog.name); } } // 等値テスト演算子を定義する int operator==(const Dog& dog) const { return strcmp(name, dog.name)==0; } friend ostream& operator<<(ostream& str, const Dog& dog){ str << dog.name; return str;} }; main() { RWTValDlist<Dog> terriers; terriers.insert("Cairn Terrier"); // 自動型変換が行われる terriers.insert("Irish Terrier"); terriers.insert("Schnauzer"); cout << "The list " << (terriers.contains("Schnauzer") ? "does ":"does not ") << "contain a Schnauzer\n"; terriers.insertAt( terriers.index("Irish Terrier"), "Fox Terrier" ); while (!terriers.isEmpty()) cout << terriers.get() << endl; return 0; } |
The list does contain a Schnauzer Cairn Terrier Fox Terrier Irish Terrier Schnauzer |
RWTValDlist<T>();
RWTValDlist<T>(const RWTValDlist<T>& list);
RWTValDlist& operator=(const RWTValDlist<T>& list);
T& operator[](size_t i);
const T& operator[](size_t i) const;
void append(const T& a);
void apply(void (*applyFun)(T&, void*), void* d);
void yourFun(T& a, void* d);
T& at(size_t i);
const T& at(size_t i) const;
void clear();
RWBoolean contains(const T& a) const;
RWBoolean contains(RWBoolean (*testFun)(const T&, void*),void* d) const;
RWBoolean yourTester(const T&, void* d);
size_t entries() const;
RWBoolean find(const T& target, T& k) const;
RWBoolean find(RWBoolean (*testFun)(const T&, void*), void* d,T& k) const;
RWBoolean yourTester(const T&, void* d);
T& first(); const T& first() const;
T get();
size_t index(const T& a);
size_t index(RWBoolean (*testFun)(const T&, void*), void* d) const;
RWBoolean yourTester(const T&, void* d);
void insert(const T& a);
void insertAt(size_t i, const T& a);
RWBoolean isEmpty() const;
T& last(); const T& last() const;
size_t occurrencesOf(const T& a) const;
size_t occurrencesOf(RWBoolean (*testFun)(const T&, void*), void* d) const;
RWBoolean yourTester(const T&, void* d);
void prepend(const T& a);
RWBoolean remove(const T& a);
RWBoolean remove(RWBoolean (*testFun)(const T&, void*),void* d);
RWBoolean yourTester(const T&, void* d);
size_t removeAll(const T& a);
size_t removeAll(RWBoolean (*testFun)(const T&, void*),void* d);
RWBoolean yourTester(const T&, void* d);
T removeAt(size_t i);
T removeFirst();
T removeLast();
RWvostream& operator<<(RWvostream& strm, const RWTValDlist<T>& coll); RWFile& operator<<(RWFile& strm, const RWTValDlist<T>& coll);
RWvistream& operator>>(RWvistream& strm, RWTValDlist<T>& coll); RWFile& operator>>(RWFile& strm, RWTValDlist<T>& coll);
RWvistream& operator>>(RWvistream& strm, RWTValDlist<T>*& p); RWFile& operator>>(RWFile& strm, RWTValDlist<T>*& p);