X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12f5e1e78fe906050ff2fee9529476db332633f0..ea160f01c60cfc879e1ba3ffec76d113a0404603:/interface/wx/vector.h diff --git a/interface/wx/vector.h b/interface/wx/vector.h index 34f32230cf..93af592cbe 100644 --- a/interface/wx/vector.h +++ b/interface/wx/vector.h @@ -3,7 +3,7 @@ // Purpose: interface of wxVector // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -20,14 +20,16 @@ @nolibrary @category{containers} - @see @ref overview_container, wxList, wxArray + @see @ref overview_container, wxList, wxArray, wxVectorSort */ template class wxVector { public: typedef size_t size_type; + typedef size_t difference_type; typedef T value_type; + typedef value_type* pointer; typedef value_type* iterator; typedef const value_type* const_iterator; typedef value_type& reference; @@ -38,7 +40,32 @@ public: wxVector(); /** - Copy onstructor. + Constructor initializing the vector with the given number of + default-constructed objects. + */ + wxVector(size_type size); + + /** + Constructor initializing the vector with the given number of + copies of the given object. + */ + wxVector(size_type size, const value_type& value); + + /** + Constructor initializing the vector with the elements in the given + range. + + The @a InputIterator template parameter must be an input iterator type. + This constructor adds all elements from @a first until, not not + including, @a last to the vector. + + @since 2.9.5 + */ + template + wxVector(InputIterator first, InputIterator last); + + /** + Copy constructor. */ wxVector(const wxVector& c); @@ -47,6 +74,27 @@ public: */ ~wxVector(); + /** + Resizes the vector to @a n and assigns @a v to all elements. + + @see resize() + + @since 2.9.5 + */ + void assign(size_type n, const value_type& v); + + /** + Assigns the elements in the given range to the vector. + + The @a InputIterator template parameter must be an input iterator type. + This method clears the vector and then adds all elements from @a first + until, not not including, @a last to it. + + @since 2.9.5 + */ + template + void assign(InputIterator first, InputIterator last); + /** Returns item at position @a idx. */ @@ -78,7 +126,18 @@ public: iterator begin(); /** - Returns vector's current capacity, i.e. how much memory is allocated. + Return reverse iterator to end of the vector. + */ + reverse_iterator rbegin(); + + /** + Return reverse iterator to beginning of the vector. + */ + reverse_iterator rend(); + + + /** + Returns vector's current capacity, i.e.\ how much memory is allocated. @see reserve() */ @@ -168,9 +227,49 @@ public: */ void reserve(size_type n); + /** + Makes the vector of size @a n. + + If @a n is less than the current size(), the elements at the end of the + vector are erased. If it is greater, then the vector is completed with + either the copies of the given object @a v or @c value_type() objects + until it becomes of size @a n. + */ + //@{ + void resize(size_type n); + void resize(size_type n, const value_type& v); + //@} + /** Returns the size of the vector. */ size_type size() const; + + /** + Efficiently exchanges contents of this vector with another one. + + After the execution of this function the contents of this vector is + equal to the original contents of @a v and the contents of @a v becomes + the original contents of this vector without copying the data. + + @since 2.9.1 + */ + void swap(wxVector& v); }; + +/** + Sort the contents of a @c wxVector. In a STL build this function will + be defined as a thin wrapper around std::sort. To be sortable the + contained type must support the less-than operator. + + @code + wxVector v; + ... // items are added to the vector v... + wxVectorSort(v); + @endcode + + @see wxVector +*/ +template +void wxVectorSort(wxVector& v);