// Name: arrstr.h
// Purpose: interface of wxArrayString
// Author: wxWidgets team
-// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
a specialization of wxArray class for the wxString member data: it is not
implemented like this, but it does have all of the wxArray functions.
- @todo what about stl? how does it integrate?
+ It also has the full set of <tt>std::vector<wxString></tt> compatible
+ methods, including nested @c iterator and @c const_iterator classes which
+ should be used in the new code for forward compatibility with the future
+ wxWidgets versions.
@library{wxbase}
@category{containers}
If @a nIndex is equal to GetCount() this function behaves as Add().
*/
- void Insert(const wxString& str, size_t nIndex,
- size_t copies = 1);
+ void Insert(wxString lItem, size_t nIndex, size_t copies = 1);
/**
Returns @true if the array is empty, @false otherwise. This function returns the
@see operator[] for the operator version.
*/
- wxString& Item(size_t nIndex) const;
+ //@{
+ wxString& Item(size_t nIndex);
+ const wxString& Item(size_t nIndex) const;
+ //@}
/**
Returns the last element of the array. Attempt to access the last element of
an empty array will result in assert failure in debug build, however no checks
are done in release mode.
*/
- wxString& Last() const;
+ //@{
+ wxString& Last();
+ const wxString& Last() const;
+ //@}
/**
Removes the first item matching this value. An assert failure is provoked by
wxSortedArrayString is an efficient container for storing wxString objects
which always keeps the string in alphabetical order.
- wxSortedArrayString uses binary search in its wxArrayString::Index() function
+ wxSortedArrayString uses binary search in its wxSortedArrayString::Index() method
(instead of linear search for wxArrayString::Index()) which makes it much more
efficient if you add strings to the array rarely (because, of course, you have
to pay for Index() efficiency by having Add() be slower) but search for them
often. Several methods should not be used with sorted array (basically, all
those which break the order of items) which is mentioned in their description.
- @todo what about STL? who does it integrates?
-
@library{wxbase}
@category{containers}
@see wxArray, wxString, @ref overview_string
*/
-class wxSortedArrayString : public wxArrayString
+class wxSortedArrayString : public wxArray
{
public:
-
/**
- Copy constructor. Note that when an array is assigned to a sorted array,
- its contents is automatically sorted during construction.
+ Conversion constructor.
+
+ Constructs a sorted array with the same contents as the (possibly
+ unsorted) "array" argument.
*/
- wxArrayString(const wxArrayString& array);
+ wxSortedArrayString(const wxArrayString& array);
/**
@copydoc wxArrayString::Add()
@warning This function should not be used with sorted arrays because it
could break the order of items and, for example, subsequent calls
to Index() would then not work!
+
+ @warning In STL mode, Insert is private and simply invokes wxFAIL_MSG.
*/
void Insert(const wxString& str, size_t nIndex,
size_t copies = 1);
break the order of items and, for example, subsequent calls to Index()
would then not work! Also, sorting a wxSortedArrayString doesn't make
sense because its elements are always already sorted.
+
+ @warning In STL mode, Sort is private and simply invokes wxFAIL_MSG.
*/
void Sort(bool reverseOrder = false);
void Sort(CompareFunction compareFunction);