template<class t, class less> struct multiset : public semaphore { typedef set_iterator<t> iterator; multiset(); multiset(const multiset<t>& copy); multiset(std::initializer_listl); template<class I> multiset(I first,I last); ~multiset(); multiset<t>& operator=(const multiset<t>& copy); multiset<t>& operator<<(const t& element); iterator after(const t& element) const; iterator after_equals(const t& element) const; iterator before(const t& element) const; iterator before_equals(const t& element) const; t& back(); const t& back() const; iterator begin() const; long long depth() const; iterator end() const; void erase(); long long erase(const t& key); void erase(iterator item); bool contains(const t& element) const; t& front(); const t& front() const; list<t> find(const t& key) const; iterator insert(const t& element); iterator last() const; long long length() const; };