📄 set.html
字号:
pair<const_iterator, const_iterator> <B>equal_range</B>(const Key& keyval) const;</PRE><P>The member function returns a pair of iterators <CODE>X</CODE>such that <CODE>X.<A HREF="utility.html#pair::first">first</A> ==<A HREF="#set::lower_bound">lower_bound</A>(keyval)</CODE>and <CODE>X.<A HREF="utility.html#pair::second">second</A> ==<A HREF="#set::upper_bound">upper_bound</A>(keyval)</CODE>.</P><H3><CODE><A NAME="set::erase">set::erase</A></CODE></H3><PRE>iterator <B>erase</B>(iterator where);iterator <B>erase</B>(iterator first, iterator last);size_type <B>erase</B>(const Key& keyval);</PRE><P>The first member function removes the element of the controlledsequence pointed to by <CODE>where</CODE>.The second member function removes the elementsin the range <CODE>[first, last)</CODE>.Both return an iterator that designates the first element remainingbeyond any elements removed, or<CODE><A HREF="#set::end">end</A>()</CODE> if no such element exists.</P><P>The third member removesthe elements with sort keys in the range<CODE>[<A HREF="#set::lower_bound">lower_bound</A>(keyval),<A HREF="#set::upper_bound">upper_bound</A>(keyval)).</CODE>It returns the number of elements it removes.</P><P>The member functions never throw an exception.</P><H3><CODE><A NAME="set::find">set::find</A></CODE></H3><PRE>iterator <B>find</B>(const Key& keyval);const_iterator <B>find</B>(const Key& keyval) const;</PRE><P>The member function returns an iterator that designatesthe element in the controlled sequence whose sort key has<A HREF="lib_stl.html#equivalent ordering">equivalent ordering</A>to <CODE>keyval</CODE>. If no such element exists,the function returns<CODE><A HREF="#set::end">end</A>()</CODE>.</P><H3><CODE><A NAME="set::get_allocator">set::get_allocator</A></CODE></H3><PRE>Alloc <B>get_allocator</B>() const;</PRE><P>The member function returns the stored<A HREF="memory.html#allocator object">allocator object</A>.</P><H3><CODE><A NAME="set::insert">set::insert</A></CODE></H3><PRE>pair<iterator, bool> <B>insert</B>(const value_type& val);iterator <B>insert</B>(iterator where, const value_type& val);template<class InIt> void <B>insert</B>(InIt first, InIt last);</PRE><P>The first member function determines whether an element <CODE>X</CODE>exists in the sequence whose key has<A HREF="lib_stl.html#equivalent ordering">equivalent ordering</A>to that of <CODE>val</CODE>. If not, it creates suchan element <CODE>X</CODE> and initializes it with <CODE>val</CODE>.The function then determines the iterator <CODE>where</CODE> thatdesignates <CODE>X</CODE>. If an insertion occurred, the functionreturns <CODE><A HREF="utility.html#pair">pair</A>(where, true)</CODE>.Otherwise, it returns <CODE>pair(where, false)</CODE>.</P><P>The second member function returns <CODE>insert(val).first</CODE>,using <CODE>where</CODE> as a starting place within the controlledsequence to search for the insertion point. (Insertion can occurin amortized constant time, instead of logarithmic time, if theinsertion point immediately precedes or follows <CODE>where</CODE>.)The third member functioninserts the sequence of element values,for each <CODE>where</CODE> in the range <CODE>[first, last)</CODE>,by calling <CODE>insert(*where)</CODE>.</P><P>If an exception is thrown during theinsertion of a single element, the container is left unalteredand the exception is rethrown.If an exception is thrown during theinsertion of multiple elements, the container is left in a stablebut unspecified state and the exception is rethrown.</P><H3><CODE><A NAME="set::iterator">set::iterator</A></CODE></H3><PRE>typedef T0 <B>iterator</B>;</PRE><P>The type describes an object that can serve as a bidirectionaliterator for the controlled sequence.It is described here as asynonym for the implementation-defined type <CODE>T0</CODE>.</P><H3><CODE><A NAME="set::key_comp">set::key_comp</A></CODE></H3><PRE>key_compare <B>key_comp</B>() const;</PRE><P>The member function returns the stored function object thatdetermines the order of elements in the controlled sequence.The stored object defines the member function:</P><PRE>bool operator(const Key& left, const Key& right);</PRE><P>which returns true if <CODE>left</CODE> strictlyprecedes <CODE>right</CODE> in the sort order.</P><H3><CODE><A NAME="set::key_compare">set::key_compare</A></CODE></H3><PRE>typedef Pr <B>key_compare</B>;</PRE><P>The type describes a function object that can compare twosort keys to determine the relative order of twoelements in the controlled sequence.</P><H3><CODE><A NAME="set::key_type">set::key_type</A></CODE></H3><PRE>typedef Key <B>key_type</B>;</PRE><P>The type describes the sort key object which constitutes eachelement of the controlled sequence.</P><H3><CODE><A NAME="set::lower_bound">set::lower_bound</A></CODE></H3><PRE>iterator <B>lower_bound</B>(const Key& keyval);const_iterator <B>lower_bound</B>(const Key& keyval) const;</PRE><P>The member function returns an iterator that designates theearliest element <CODE>X</CODE> in the controlled sequence for which<CODE><A HREF="#set::key_comp">key_comp</A>()(X, keyval)</CODE> isfalse.</P> If no such element exists, the function returns<CODE><A HREF="#set::end">end</A>()</CODE>.<H3><CODE><A NAME="set::max_size">set::max_size</A></CODE></H3><PRE>size_type <B>max_size</B>() const;</PRE><P>The member function returns the length of the longest sequence thatthe object can control.</P><H3><CODE><A NAME="set::pointer">set::pointer</A></CODE></H3><PRE>typedef Alloc::pointer <B>pointer</B>;</PRE><P>The type describes an object that can serve as a pointer to anelement of the controlled sequence.</P><H3><CODE><A NAME="set::rbegin">set::rbegin</A></CODE></H3><PRE>reverse_iterator <B>rbegin</B>();const_reverse_iterator <B>rbegin</B>() const;</PRE><P>The member function returns a reverse bidirectionaliterator that points justbeyond the end of the controlled sequence. Hence, it designates thebeginning of the reverse sequence.</P><H3><CODE><A NAME="set::reference">set::reference</A></CODE></H3><PRE>typedef Alloc::const_reference <B>const_reference</B>;</PRE><P>The type describes an object that can serve as a reference to anelement of the controlled sequence.</P><H3><CODE><A NAME="set::rend">set::rend</A></CODE></H3><PRE>reverse_iterator <B>rend</B>();const_reverse_iterator <B>rend</B>() const;</PRE><P>The member function returns a reverse bidirectionaliterator that points at thefirst element of the sequence (or just beyond the end of an emptysequence). Hence, it designates the end of the reverse sequence.</P><H3><CODE><A NAME="set::reverse_iterator">set::reverse_iterator</A></CODE></H3><PRE>typedef reverse_iterator<iterator> <B>reverse_iterator</B>;</PRE><P>The type describes an object that can serve as a reversebidirectional iterator for the controlled sequence.</P><H3><CODE><A NAME="set::set">set::set</A></CODE></H3><PRE><B>set</B>();explicit <B>set</B>(const Pr& pred);<B>set</B>(const Pr& pred, const Alloc& al);<B>set</B>(const set& right);template<class InIt> <B>set</B>(InIt first, InIt last);template<class InIt> <B>set</B>(InIt first, InIt last, const Pr& pred);template<class InIt> <B>set</B>(InIt first, InIt last, const Pr& pred, const Alloc& al);</PRE><P>All constructors store an<A HREF="memory.html#allocator object">allocator object</A> andinitialize the controlled sequence. The allocator object is the argument<CODE>al</CODE>, if present. For the copy constructor, it is<CODE>right.<A HREF="#set::get_allocator">get_allocator</A>()</CODE>.Otherwise, it is <CODE>Alloc()</CODE>.</P><P>All constructors also store a function object that can laterbe returned by calling<CODE><A HREF="#set::key_comp">key_comp</A>()</CODE>.The function object is the argument <CODE>pred</CODE>, if present.For the copy constructor, it is<CODE>right.<A HREF="#set::key_comp">key_comp</A>()</CODE>).Otherwise, it is <CODE>Pr()</CODE>.</P><P>The first three constructors specify anempty initial controlled sequence. The fourth constructor specifiesa copy of the sequence controlled by <CODE>right</CODE>.The last three constructors specify the sequence of element values<CODE>[first, last)</CODE>.</P><H3><CODE><A NAME="set::size">set::size</A></CODE></H3><PRE>size_type <B>size</B>() const;</PRE><P>The member function returns the length of the controlled sequence.</P><H3><CODE><A NAME="set::size_type">set::size_type</A></CODE></H3><PRE>typedef T2 <B>size_type</B>;</PRE><P>The unsigned integer type describes an object that can represent thelength of any controlled sequence. It is described here as asynonym for the implementation-defined type <CODE>T2</CODE>.</P><H3><CODE><A NAME="set::swap">set::swap</A></CODE></H3><PRE>void <B>swap</B>(set& right);</PRE><P>The member function swaps the controlled sequences between<CODE>*this</CODE> and <CODE>right</CODE>. If<CODE><A HREF="#set::get_allocator">get_allocator</A>()== right.get_allocator()</CODE>, it does so in constant time,it throws an exception only as a result of copying the storedfunction object of type <CODE>Pr</CODE>, and it invalidates no references, pointers,or iterators that designate elements in the two controlled sequences.Otherwise, it performs a number of element assignments and constructor callsproportional to the number of elements in the two controlled sequences.</P><H3><CODE><A NAME="set::upper_bound">set::upper_bound</A></CODE></H3><PRE>iterator <B>upper_bound</B>(const Key& keyval)const_iterator <B>upper_bound</B>(const Key& keyval) const;</PRE><P>The member function returns an iterator that designates theearliest element <CODE>X</CODE> in the controlled sequence for which<CODE><A HREF="#set::key_comp">key_comp</A>()(keyval, X)</CODE> istrue.</P> If no such element exists, the function returns<CODE><A HREF="#set::end">end</A>()</CODE>.<H3><CODE><A NAME="set::value_comp">set::value_comp</A></CODE></H3><PRE>value_compare <B>value_comp</B>() const;</PRE><P>The member function returns a function object thatdetermines the order of elements in the controlled sequence.</P><H3><CODE><A NAME="set::value_compare">set::value_compare</A></CODE></H3><PRE>typedef Pr <B>value_compare</B>;</PRE><P>The type describes a function object that can compare twoelements as sort keys to determine their relative orderin the controlled sequence.</P><H3><CODE><A NAME="set::value_type">set::value_type</A></CODE></H3><PRE>typedef Key <B>value_type</B>;</PRE><P>The type describes an element of the controlled sequence.</P><H2><A NAME="swap"><CODE>swap</CODE></A></H2><PRE>template<class Key, class Pr, class Alloc> void <B>swap</B>( multiset <Key, Pr, Alloc>& left, multiset <Key, Pr, Alloc>& right);template<class Key, class Pr, class Alloc> void <B>swap</B>( set <Key, Pr, Alloc>& left, set <Key, Pr, Alloc>& right);</PRE><P>The template function executes<CODE>left.<A HREF="#set::swap">swap</A>(right)</CODE>.</P><HR><P>See also the<B><A HREF="index.html#Table of Contents">Table of Contents</A></B> and the<B><A HREF="_index.html">Index</A></B>.</P><P><I><A HREF="crit_pjp.html">Copyright</A> © 1994-2002by P.J. Plauger. Portions derived from work<A HREF="crit_hp.html">copyright</A> © 1994by Hewlett-Packard Company. All rights reserved.</I></P><!--V4.01:1125--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -