]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/vector.h
Trying to make wxString readable again
[wxWidgets.git] / interface / vector.h
index 3ca85c6c3e9cc92a4cdd5abbf070b6418323d36a..5492dba9f61c7803657177586edca2c22e8b7bae 100644 (file)
@@ -1,74 +1,89 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        vector.h
-// Purpose:     documentation for wxVector<T> class
+// Purpose:     interface of wxVector<T>
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 /**
-    @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.
-    
-    You can refer to the STL documentation for further information.
-    
-    @library{wxbase}
-    @category{FIXME}
-    
-    @seealso
-    @ref overview_wxcontaineroverview "Container classes overview", wxListT,
-    wxArrayT
+
+    wxVector<T> is a template class which implements most of the @c std::vector
+    class and can be used like it.
+
+    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<T>
+    need to be @e assignable but don't have to be @e default constructible.
+
+    Please refer to the STL documentation for further information.
+
+    @nolibrary
+    @category{containers}
+
+    @see @ref overview_container, wxList, wxArray
 */
-class wxVector<T> 
+template<typename T>
+class wxVector<T>
 {
 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<T>& c);
-    //@}
+    wxVector();
+
+    /**
+        Copy onstructor.
+    */
+    wxVector(const wxVector<T>& c);
 
     /**
         Destructor.
     */
-    ~wxVectorT();
+    ~wxVector();
+
+    /**
+        Returns item at position @e idx.
+    */
+    const value_type& at(size_type idx) const;
 
-    //@{
     /**
         Returns item at position @e idx.
     */
-    const value_type at(size_type idx);
-        value_type at(size_type idx);
-    //@}
+    value_type& at(size_type idx);
+
+    /**
+        Return the last item.
+    */
+    const value_type& back() const;
 
-    //@{
     /**
-        Return last item.
+        Return the last item.
+    */
+    value_type& back();
+
+    /**
+        Return iterator to beginning of the vector.
     */
-    const value_type back();
-        value_type back();
-    //@}
+    const_iterator begin() const;
 
-    //@{
     /**
         Return iterator to beginning of the vector.
     */
-    const_iterator begin();
-        iterator begin();
-    //@}
+    iterator begin();
 
     /**
-        
+        Returns vector's current capacity, i.e. how much memory is allocated.
+
+        @see reserve()
     */
-    size_type capacity();
+    size_type capacity() const;
 
     /**
         Clears the vector.
@@ -78,55 +93,64 @@ public:
     /**
         Returns @true if the vector is empty.
     */
-    bool empty();
+    bool empty() const;
+
+    /**
+        Returns iterator to the end of the vector.
+    */
+    const_iterator end() const;
 
-    //@{
     /**
         Returns iterator to the end of the vector.
     */
-    const_iterator end();
-        iterator end();
-    //@}
+    iterator end();
 
-    //@{
     /**
-        Erase items. When using values other than built-in integrals 
-        or classes with reference counting this can be an inefficient
-        operation.
+        Erase item pointed to by iterator @a it.
+
+        @return Iterator pointing to the item immediately after the erased one.
     */
     iterator erase(iterator it);
-        iterator erase(iterator first, iterator last);
-    //@}
 
-    //@{
     /**
-        Returns first item.
+        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 the first item.
     */
-    const value_type front();
-        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<T>& vb);
 
-    //@{
     /**
         Returns item at position @e idx.
     */
-    const value_type operator[](size_type idx);
-        value_type operator[](size_type idx);
-    //@}
+    const value_type& operator[](size_type idx) const;
+
+    /**
+        Returns item at position @e idx.
+    */
+    value_type& operator[](size_type idx);
 
     /**
         Removes the last item.
@@ -139,9 +163,10 @@ public:
     void push_back(const value_type& v);
 
     /**
-        Reserves more memory of @e 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);
 };
+