]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/vector.h
Moved all interface headers into a 'wx' subdirectory for proper use of Doxygen path...
[wxWidgets.git] / interface / wx / vector.h
diff --git a/interface/wx/vector.h b/interface/wx/vector.h
new file mode 100644 (file)
index 0000000..65e39a4
--- /dev/null
@@ -0,0 +1,177 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        vector.h
+// Purpose:     interface of wxVector<T>
+// Author:      wxWidgets team
+// RCS-ID:      $Id$
+// Licence:     wxWindows license
+/////////////////////////////////////////////////////////////////////////////
+
+/**
+    @wxheader{vector.h}
+
+    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<T>, wxArray<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.
+    */
+    wxVector();
+
+    /**
+        Copy onstructor.
+    */
+    wxVector(const wxVector<T>& c);
+
+    /**
+        Destructor.
+    */
+    ~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);
+
+    /**
+        Return the last item.
+    */
+    const value_type& back() const;
+
+    /**
+        Return the last item.
+    */
+    value_type& back();
+
+    /**
+        Return iterator to beginning of the vector.
+    */
+    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;
+
+    /**
+        Clears the vector.
+    */
+    void clear();
+
+    /**
+        Returns @true if the vector is empty.
+    */
+    bool empty() const;
+
+    /**
+        Returns iterator to the end of the vector.
+    */
+    const_iterator end() const;
+
+    /**
+        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 the first item.
+    */
+    const value_type& front() const;
+
+    /**
+        Returns the first item.
+    */
+    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.
+    */
+    wxVector& operator=(const wxVector& vb);
+
+    /**
+        Returns item at position @a idx.
+    */
+    const value_type& operator[](size_type idx) const;
+
+    /**
+        Returns item at position @a idx.
+    */
+    value_type& operator[](size_type idx);
+
+    /**
+        Removes the last item.
+    */
+    void pop_back();
+
+    /**
+        Adds an item to the end of the vector.
+    */
+    void push_back(const value_type& v);
+
+    /**
+        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;
+};
+