X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c4f71cc3d63fb7bdfbd6cec3e39c8a8679f3e60..3ed3a1c846d66410872a15f746c432311e306e42:/interface/vector.h diff --git a/interface/vector.h b/interface/vector.h index 66dee41fa9..65e39a4a1d 100644 --- a/interface/vector.h +++ b/interface/vector.h @@ -7,64 +7,81 @@ ///////////////////////////////////////////////////////////////////////////// /** - @class wxVectorT @wxheader{vector.h} - wxVectorT is a template class which implements most of the std::vector - class and can be used like it. If wxWidgets is compiled in STL mode, - wxVector will just be a typedef to std::vector. Just like for std::vector, - objects stored in wxVectorT need to be @e assignable but don't have to - be @e default constructible. + wxVector is a template class which implements most of the @c std::vector + class and can be used like it. - You can refer to the STL documentation for further information. + If wxWidgets is compiled in STL mode, wxVector will just be a typedef to + @c std::vector. Just like for @c std::vector, objects stored in wxVector + need to be @e assignable but don't have to be @e "default constructible". - @library{wxbase} - @category{FIXME} + Please refer to the STL documentation for further information. - @see @ref overview_wxcontaineroverview, wxListT(), wxArrayT() + @nolibrary + @category{containers} + + @see @ref overview_container, wxList, wxArray */ +template class wxVector { public: - //@{ + typedef size_t size_type; + typedef T value_type; + typedef value_type* iterator; + typedef const value_type* const_iterator; + typedef value_type& reference; + /** Constructor. */ - wxVectorT(); - wxVectorT(const wxVector& c); - //@} + wxVector(); + + /** + Copy onstructor. + */ + wxVector(const wxVector& c); /** Destructor. */ - ~wxVectorT(); + ~wxVector(); + + /** + Returns item at position @a idx. + */ + const value_type& at(size_type idx) const; + + /** + Returns item at position @a idx. + */ + value_type& at(size_type idx); - //@{ /** - Returns item at position @e idx. + Return the last item. */ - const value_type at(size_type idx); - const value_type at(size_type idx); - //@} + const value_type& back() const; - //@{ /** - Return last item. + Return the last item. */ - const value_type back(); - const value_type back(); - //@} + value_type& back(); - //@{ /** Return iterator to beginning of the vector. */ - const_iterator begin(); - const iterator begin(); - //@} + const_iterator begin() const; /** + Return iterator to beginning of the vector. + */ + iterator begin(); + /** + Returns vector's current capacity, i.e. how much memory is allocated. + + @see reserve() */ size_type capacity() const; @@ -78,52 +95,62 @@ public: */ bool empty() const; - //@{ /** Returns iterator to the end of the vector. */ - const_iterator end(); - const iterator end(); - //@} + const_iterator end() const; - //@{ /** - Erase items. When using values other than built-in integrals - or classes with reference counting this can be an inefficient - operation. + Returns iterator to the end of the vector. + */ + iterator end(); + + /** + Erase item pointed to by iterator @a it. + + @return Iterator pointing to the item immediately after the erased one. */ iterator erase(iterator it); + + /** + Erase items in the range @a first to @a last (@a last is not erased). + + @return Iterator pointing to the item immediately after the erased + range. + */ iterator erase(iterator first, iterator last); - //@} - //@{ /** - Returns first item. + Returns the first item. */ - const value_type front(); - const value_type front(); - //@} + const value_type& front() const; /** - ) - Insert an item. When using values other than built-in integrals - or classes with reference counting this can be an inefficient - operation. + Returns the first item. */ - iterator insert(iterator it); + value_type& front(); + + /** + Insert item @a v at given position @a it. + + @return Iterator for the inserted item. + */ + iterator insert(iterator it, const value_type& v = value_type()); /** Assignment operator. */ - wxVectorT& operator operator=(const wxVector& vb); + wxVector& operator=(const wxVector& vb); + + /** + Returns item at position @a idx. + */ + const value_type& operator[](size_type idx) const; - //@{ /** - Returns item at position @e idx. + Returns item at position @a idx. */ - const value_type operator[](size_type idx); - const value_type operator[](size_type idx); - //@} + value_type& operator[](size_type idx); /** Removes the last item. @@ -136,10 +163,15 @@ public: void push_back(const value_type& v); /** - Reserves more memory of @a n is greater then - wxVector::size. Other this call has - no effect. + Reserves memory for at least @a n items. + + @see capacity() */ void reserve(size_type n); + + /** + Returns the size of the vector. + */ + size_type size() const; };