バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWTValDlist<T>
#include <rw/tvdlist.h> RWTValDlist<T> dlist;
注 - 標準 C++ ライブラリがある場合は、ここで述べるインタフェースを使用します。標準 C++ ライブラリがない場合は、付録 A に記載する RWTValDlist に限定されたインタフェースを使用してください。
// // tvdldog.cpp // #include <rw/tvdlist.h> #include <iostream.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; } // アルファベット順に 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 |
クラス list<T,allocator> は、このクラスの基礎となる実装として使用される C++ 標準コレクションです。
typedef list<T,allocator> container_type; typedef container_type::iterator iterator; typedef container_type::const_iterator const_iterator; typedef container_type::size_type size_type; typedef T value_type; typedef T& reference; typedef const T& const_reference;
RWTValDlist<T>();
RWTValDlist<T>(const list<T,allocator>& lst);
RWTValDlist<T>(const RWTValDlist<T>& rwlst);
RWTValDlist<T>(size_type n, const T& val = T());
RWTValDlist<T>(const T* first, const T* last);
RWTValDlist<T>& operator=(const RWTValDlist<T>& lst); RWTValDlist<T>& operator=(const list<T,allocator>& lst);
bool operator<(const RWTValDlist<T>& lst) const; bool operator<(const list<T,allocator>& lst) const;
bool operator==(const RWTValDlist<T>& lst) const; bool operator==(const list<T,allocator>& lst) const;
reference operator()(size_type i); const_reference operator()(size_type i) const;
reference operator[](size_type i); const_reference operator[](size_type i) const;
void append(const_reference a);
void apply(void (*fn)(reference,void*), void* d); void apply(void (*fn)(const_reference,void*), void* d) const;
void yourfun(const_reference a, void* d); void yourfun(reference a, void* d);
reference at(size_type i); const_reference at(size_type i) const;
iterator begin(); const_iterator begin() const;
void clear();
bool contains(const_reference a) const;
bool contains(bool (*fn)(const_reference,void*), void* d) const;
bool yourTester(const_reference a, void* d);
iterator end(); const_iterator end() const;
size_type entries() const;
bool find(const_reference a, T& k) const;
bool find(bool (*fn)(const_reference,void*), void* d, T& k) const;
bool yourTester(const_reference a, void* d);
reference first(); const_reference first() const;
T get();
size_type index(const_reference a) const;
size_type index(bool (*fn)(const_reference,void*), void* d) const;
bool yourTester(const_reference a, void* d);
bool insert(const_reference a);
void insertAt(size_type i,const_reference a);
bool isEmpty() const;
reference last(); const_reference last() const;
reference maxElement(); const_reference maxElement() const; reference minElement(); const_reference minElement() const;
size_type occurrencesOf(const_reference a) const;
size_type occurrencesOf(bool (*fn)(const_reference,void*),void* d) const;
bool yourTester(const_reference a, void* d);
void prepend(const_reference a);
bool remove(const_reference a);
bool remove(bool (*fn)(const_reference,void*), void* d);
bool yourTester(const_reference a, void* d);
size_type removeAll(const_reference a);
size_type removeAll(bool (*fn)(const_reference,void*), void* d);
bool yourTester(const_reference a, void* d);
T removeAt(size_type i);
T removeFirst();
T removeLast();
size_type replaceAll(const_reference oldVal, const_reference newVal);
size_type replaceAll(bool (*fn)(const_reference,void*), void* d, const value_type& newval);
bool yourTester(const_reference a, void* d);
void sort();
list<T,allocator>& std(); const list<T>& std() const;
const size_type npos;
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);