%% License: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{\class{wxArray}}\label{wxarray}
+\section{\class{wxArray<T>}}\label{wxarray}
This section describes the so called {\it dynamic arrays}. This is a C
-array-like data structure i.e. the member access time is constant (and not
+array-like type safe data structure i.e. the member access time is constant (and not
linear according to the number of container elements as for linked lists). However, these
arrays are dynamic in the sense that they will automatically allocate more
memory if there is not enough of it for adding a new element. They also perform
\wxheading{See also}
-\helpref{Container classes overview}{wxcontaineroverview}, \helpref{wxList}{wxlist}
+\helpref{Container classes overview}{wxcontaineroverview},
+\helpref{wxList<T>}{wxlist},
+\helpref{wxVector<T>}{wxvector}
\wxheading{Include files}
\twocolitem{\helpref{wxCmdLineParser}{wxcmdlineparser}}{Command line parser class}
\twocolitem{\helpref{wxDateSpan}{wxdatespan}}{A logical time interval.}
\twocolitem{\helpref{wxDateTime}{wxdatetime}}{A class for date/time manipulations}
-%\twocolitem{\helpref{wxExpr}{wxexpr}}{A class for flexible I/O}
-%\twocolitem{\helpref{wxExprDatabase}{wxexprdatabase}}{A class for flexible I/O}
-\twocolitem{\helpref{wxArray}{wxarray}}{A dynamic array implementation}
-\twocolitem{\helpref{wxArrayString}{wxarraystring}}{An efficient container for storing \helpref{wxString}{wxstring} objects}
-\twocolitem{\helpref{wxHashMap}{wxhashmap}}{A simple hash map implementation}
-\twocolitem{\helpref{wxHashSet}{wxhashset}}{A simple hash set implementation}
-\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation (deprecated, use wxHashMap)}
-% \twocolitem{\helpref{wxHashTableLong}{wxhashtablelong}}{A wxHashTable version for storing long data}
-\twocolitem{\helpref{wxList}{wxlist}}{A simple linked list implementation}
\twocolitem{\helpref{wxLongLong}{wxlonglong}}{A portable 64 bit integer type}
-\twocolitem{\helpref{wxNode}{wxnode}}{Represents a node in the wxList implementation}
\twocolitem{\helpref{wxObject}{wxobject}}{The root class for most wxWidgets classes}
\twocolitem{\helpref{wxPathList}{wxpathlist}}{A class to help search multiple paths}
\twocolitem{\helpref{wxPoint}{wxpoint}}{Representation of a point}
\twocolitem{\helpref{wxVariant}{wxvariant}}{A class for storing arbitrary types that may change at run-time}
\end{twocollist}
+{\large {\bf Container classes}}
+
+\overview{Overview}{wxcontaineroverview}
+
+These are classes, templates and class macros are used by wxWidgets. Most
+of these classes provide a subset or almost complete STL API.
+
+\twocolwidtha{6cm}
+\begin{twocollist}\itemsep=0pt
+\twocolitem{\helpref{wxArray<T>}{wxarray}}{A type-safe dynamic array implementation (macro based)}
+\twocolitem{\helpref{wxArrayString}{wxarraystring}}{An efficient container for storing \helpref{wxString}{wxstring} objects}
+\twocolitem{\helpref{wxHashMap<T>}{wxhashmap}}{A type-safe hash map implementation (macro based)}
+\twocolitem{\helpref{wxHashSet<T>}{wxhashset}}{A type-safe hash set implementation(macro based)}
+\twocolitem{\helpref{wxHashTable}{wxhashtable}}{A simple hash table implementation (deprecated, use wxHashMap)}
+\twocolitem{\helpref{wxList<T>}{wxlist}}{A type-safe linked list implementation (macro based)}
+\twocolitem{\helpref{wxVector<T>}{wxvector}}{Template base vector implementation}
+\end{twocollist}
+
{\large {\bf Run-time class information system}}
\overview{Overview}{runtimeclassoverview}
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
-\twocolitem{\helpref{wxXmlDocument}{wxxmldocument}}{A class to parse XML files.}
-\twocolitem{\helpref{wxXmlNode}{wxxmlnode}}{A class which represents XML nodes.}
-\twocolitem{\helpref{wxXmlAttribute}{wxxmlattribute}}{A class which represents XML properties.}
+\twocolitem{\helpref{wxXmlDocument}{wxxmldocument}}{A class to parse XML files}
+\twocolitem{\helpref{wxXmlNode}{wxxmlnode}}{A class which represents XML nodes}
+\twocolitem{\helpref{wxXmlAttribute}{wxxmlattribute}}{A class which represent an XML attribute}
\end{twocollist}
{\large {\bf XML-based resource system classes}}
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
-\twocolitem{\helpref{wxXmlResource}{wxxmlresource}}{The main class for working with resources.}
-\twocolitem{\helpref{wxXmlResourceHandler}{wxxmlresourcehandler}}{The base class for XML resource handlers.}
+\twocolitem{\helpref{wxXmlResource}{wxxmlresource}}{The main class for working with resources}
+\twocolitem{\helpref{wxXmlResourceHandler}{wxxmlresourcehandler}}{The base class for XML resource handlers}
\end{twocollist}
{\large {\bf Online help}}
\overview{Database classes overview}{odbcoverview}
wxWidgets provides a set of classes for accessing Microsoft's ODBC (Open Database Connectivity)
-product, donated by Remstar. This is known as wxODBC.
+product, donated by Remstar. This is known as wxODBC. Note that these classes are deprecated
+and will be removed from wxWidgets.
\twocolwidtha{6cm}
\begin{twocollist}\itemsep=0pt
\wxheading{See also}
-\helpref{wxArray}{wxarray}
+\helpref{wxArray<T>}{wxarray},
+\helpref{wxVector<T>}{wxvector}
\latexignore{\rtfignore{\wxheading{Members}}}
--- /dev/null
+\section{\class{wxVector<T>}}\label{wxvector}
+
+wxVector is a template which implements most of the std::vector
+class and can be used like. If wxWidgets is compiled in STL mode,
+wxVector will just be a typedef to std::vector. You should
+refer to the STL documentation for further information.
+
+\wxheading{Derived from}
+
+No base class
+
+\wxheading{Include files}
+
+<vector.h>
+
+\wxheading{See also}
+
+\helpref{Container classes overview}{wxcontaineroverview},
+\helpref{wxList<T>}{wxlist},
+\helpref{wxArray<T>}{wxvector}
+
+\membersection{wxVector<T>::wxVector<T>}\label{wxvectorwxvector}
+
+\func{}{wxVector<T>}{\void}
+
+\func{}{wxVector<T>}{\param{const wxVector<T>\& }{c}}
+
+Constructor.
+
+\membersection{wxVector<T>::\destruct{wxVector<T>}}\label{wxvectordtor}
+
+\func{}{\destruct{wxVector<T>}}{\void}
+
+Destructor.
+
+\membersection{wxVector<T>::operator=}\label{wxvectoroperatorassign}
+
+\func{wxVector<T>\& operator}{operator=}{\param{const wxVector<T>\& }{vb}}
+
+Assignement operator.
+
+\membersection{wxVector<T>::at}\label{wxvectorat}
+
+\constfunc{const value\_type\&}{at}{\param{size\_type }{idx}}
+
+\func{value\_type\&}{at}{\param{size\_type }{idx}}
+
+Returns item at position {\it idx}.
+
+\membersection{wxVector<T>::back}\label{wxvectorback}
+
+\constfunc{const value\_type\&}{back}{\void}
+
+\func{value\_type\&}{back}{\void}
+
+Return last item.
+
+\membersection{wxVector<T>::begin}\label{wxvectorbegin}
+
+\constfunc{const\_iterator}{begin}{\void}
+
+\func{iterator}{begin}{\void}
+
+Return iterator to beginning of the vector.
+
+\membersection{wxVector<T>::capacity}\label{wxvectorcapacity}
+
+\constfunc{size\_type}{capacity}{\void}
+
+
+\membersection{wxVector<T>::clear}\label{wxvectorclear}
+
+\func{void}{clear}{\void}
+
+Clears the vector.
+
+\membersection{wxVector<T>::empty}\label{wxvectorempty}
+
+\constfunc{bool}{empty}{\void}
+
+Returns true if the vector is empty.
+
+\membersection{wxVector<T>::end}\label{wxvectorend}
+
+\constfunc{const\_iterator}{end}{\void}
+
+\func{iterator}{end}{\void}
+
+Returns iterator to the end of the vector.
+
+\membersection{wxVector<T>::erase}\label{wxvectorerase}
+
+\func{iterator}{erase}{\param{iterator }{it}}
+
+\func{iterator}{erase}{\param{iterator }{first}, \param{iterator }{last}}
+
+Erase items.
+
+\membersection{wxVector<T>::front}\label{wxvectorfront}
+
+\constfunc{const value\_type\&}{front}{\void}
+
+\func{value\_type\&}{front}{\void}
+
+Returns first item.
+
+\membersection{wxVector<T>::insert}\label{wxvectorinsert}
+
+\func{iterator}{insert}{\param{iterator }{it}, \param{const value\_type\& }{v = value\_type()}}
+
+Insert an item. When using values other than built-in integrals
+or classes with reference counting this can be a very inefficient
+operation.
+
+\membersection{wxVector<T>::operator[]}\label{wxvectoroperatorunknown}
+
+\constfunc{const value\_type\&}{operator[]}{\param{size\_type }{idx}}
+
+\func{value\_type\&}{operator[]}{\param{size\_type }{idx}}
+
+Returns item at position {\it idx}.
+
+\membersection{wxVector<T>::pop\_back}\label{wxvectorpopback}
+
+\func{void}{pop\_back}{\void}
+
+Removes the last item.
+
+\membersection{wxVector<T>::push\_back}\label{wxvectorpushback}
+
+\func{void}{push\_back}{\param{const value\_type\& }{v}}
+
+Adds an item to the end of the vector.
+
+\membersection{wxVector<T>::reserve}\label{wxvectorreserve}
+
+\func{void}{reserve}{\param{size\_type }{n}}
+
+Reserves more memory of {\it n} is greater then
+\helpref{size}{wxvectorsize}. Other this call has
+no effect.
+
+\membersection{wxVector<T>::size}\label{wxvectorsize}
+
+\constfunc{size\_type}{size}{\void}
+
+Returns the size of the vector.