バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWTValSet<T,C>
#include <rw/tvset.h> RWTValSet<T,C> s;
注 - RWTValSet には標準 C++ ライブラリが必要です。
bool operator()(const T& x, const T& y) constこれは、コレクション内において、x が y より前になる場合、TRUE を返します。C++ 標準ヘッダーファイル <functional> からの構造体 less<T> がその例です。
RWTValSet<T,C> は、コレクション内の既存の項目と等しい項目は受け付けません (RWTValMultiSet<T,C> には、互いに等しい複数の項目を含めることができます)。等しいかどうかは、== 演算子ではなく、比較オブジェクトにもとづいて判定されます。比較オブジェクト comp を使用するとき、キー a と b は次の場合に等しくなります。
!comp(a,b) && !comp(b,a)
// // tvsstr.cpp // #include <rw/tvset.h> #include <rw/cstring.h> #include <iostream.h> #include <function.h> main(){ RWTValSet<RWCString,less<RWCString> > set; set.insert("one"); set.insert("two"); set.insert("three"); set.insert("one"); // 拒絶:すでにコレクション中にある cout << set.entries() << endl; // 「3」を出力する return 0; } |
クラス set<T,C,allocator> は、RWTValSet<T,C> の基礎となる実装として使用される C++ 標準コレクションです。
typedef set<T,C,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 const T& const_reference;
RWTValSet<T,C>(const C& comp = C());
RWTValSet<T,C>(const container_type& s);
RWTValSet<T,C>(const RWTValSet<T,C>& rws);
RWTValSet<T,C> (const T* first,const T* last,const C& comp = C());
RWTValSet<T,C>& operator=(const RWTValSet<T,C>& s); RWTValSet<T,C>& operator=(const container_type& s);
bool operator<(const RWTValSet<T,C>& s) const; bool operator<(const container_type& s) const;
bool operator==(const RWTValSet<T,C>& s) const; bool operator==(const set<T,C>& s) const;
void apply(void (*fn)(const_reference,void*), void* d) const;
void yourfun(const_reference a, void* d);
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);
void difference(const RWTValSet<T,C>& s); void difference(const container_type& s);
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);
bool insert(const_reference a);
void intersection(const RWTValSet<T,C>& s); void intersection(const container_type& s);
bool isEmpty() const;
bool isEquivalent(const RWTValSet<T,C>& s) const;
bool isProperSubsetOf(const RWTValSet<T,C>& s) const;
bool isSubsetOf(const RWTValSet<T,C>& s) const;
size_type occurrencesOf(const_reference a) const;
size_type occurrencesOf(bool (*fn)(const T&,void*),void* d) const;
bool yourTester(const_reference a, void* d);
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);
set<T,C,allocator>& std(); const set<T,C,allocator>& std() const;
void symmetricDifference(const RWTValSet<T,C>& s); void symmetricDifference(const container_type& s);
void Union(const RWTValSet<T,C>& s); void Union(const container_type& s);
RWvostream& operator<<(RWvostream& strm, const RWTValSet<T,C>& coll); RWFile& operator<<(RWFile& strm, const RWTValSet<T,C>& coll);
RWvistream& operator>>(RWvistream& strm, RWTValSet<T,C>& coll); RWFile& operator>>(RWFile& strm, RWTValSet<T,C>& coll);
RWvistream& operator>>(RWvistream& strm, RWTValSet<T,C>*& p); RWFile& operator>>(RWFile& strm, RWTValSet<T,C>*& p);