CrystalSpace

Public API Reference

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

csStringArray Class Reference

An array of strings. More...

#include <csutil/stringarray.h>

Inheritance diagram for csStringArray:

csArray< const char *, csStringArrayElementHandler > List of all members.

Public Member Functions

size_t Contains (const char *str, bool case_sensitive=true) const
 Alias for Find() and FindCaseInsensitive().
 csStringArray (size_t limit=0, size_t threshold=0)
 Initialize object to hold initially limit elements, and increase storage by threshold each time the upper bound is exceeded.
size_t Find (const char *str) const
 Find a string, case-sensitive.
size_t FindCaseInsensitive (const char *str) const
 Find a string, case-insensitive.
size_t FindSortedKey (char const *key, bool case_sensitive=true, size_t *candidate=0) const
 Find an element.
size_t FindSortedKey (csArrayCmp< char const *, char const * > comparekey, size_t *candidate=0) const
 Find an element based on some key, using a comparison function.
size_t InsertSorted (const char *item, bool case_sensitive=true, size_t *equal_index=0)
 Insert an element at a sorted position.
char * Pop ()
 Pop an element from tail end of array.
void Sort (bool case_sensitive=true)
 Sort array.
void Sort (int(*compare)(char const *const &, char const *const &))
 Sort array based on comparison function.

Static Public Member Functions

static int CaseInsensitiveCompare (const char *const &item1, const char *const &item2)
 Case-insensitive comparision function for strings.
static int CaseSensitiveCompare (const char *const &item1, const char *const &item2)
 Case-sensitive comparision function for strings.

Detailed Description

An array of strings.

This array will properly make copies of the strings and later delete those copies via delete[].

Definition at line 51 of file stringarray.h.


Constructor & Destructor Documentation

csStringArray::csStringArray size_t  limit = 0,
size_t  threshold = 0
[inline]
 

Initialize object to hold initially limit elements, and increase storage by threshold each time the upper bound is exceeded.

Definition at line 61 of file stringarray.h.


Member Function Documentation

static int csStringArray::CaseInsensitiveCompare const char *const &  item1,
const char *const &  item2
[inline, static]
 

Case-insensitive comparision function for strings.

Definition at line 74 of file stringarray.h.

References csStrCaseCmp().

Referenced by FindSortedKey(), InsertSorted(), and Sort().

static int csStringArray::CaseSensitiveCompare const char *const &  item1,
const char *const &  item2
[inline, static]
 

Case-sensitive comparision function for strings.

Definition at line 67 of file stringarray.h.

Referenced by FindSortedKey(), InsertSorted(), and Sort().

size_t csStringArray::Contains const char *  str,
bool  case_sensitive = true
const [inline]
 

Alias for Find() and FindCaseInsensitive().

Parameters:
str String to look for in array.
case_sensitive If true, consider case when performing comparison. (default: yes)
Returns:
csArrayItemNotFound if not found, else item index.
Remarks:
Works with sorted and unsorted arrays, but FindSortedKey() is faster on sorted arrays.

Some people find Contains() more idiomatic than Find().

Definition at line 192 of file stringarray.h.

References Find(), and FindCaseInsensitive().

size_t csStringArray::Find const char *  str  )  const [inline]
 

Find a string, case-sensitive.

Returns:
csArrayItemNotFound if not found, else item index.
Remarks:
Works with sorted and unsorted arrays, but FindSortedKey() is faster on sorted arrays.

Definition at line 159 of file stringarray.h.

References csArray< const char *, csStringArrayElementHandler >::Get(), and csArray< const char *, csStringArrayElementHandler >::GetSize().

Referenced by Contains().

size_t csStringArray::FindCaseInsensitive const char *  str  )  const [inline]
 

Find a string, case-insensitive.

Returns:
csArrayItemNotFound if not found, else item index.
Remarks:
Works with sorted and unsorted arrays, but FindSortedKey() is faster on sorted arrays.

Definition at line 173 of file stringarray.h.

References csStrCaseCmp(), csArray< const char *, csStringArrayElementHandler >::Get(), and csArray< const char *, csStringArrayElementHandler >::GetSize().

Referenced by Contains().

size_t csStringArray::FindSortedKey char const *  key,
bool  case_sensitive = true,
size_t *  candidate = 0
const [inline]
 

Find an element.

Returns:
csArrayItemNotFound if not found, else item index.
Remarks:
The array must be sorted.

Definition at line 117 of file stringarray.h.

References CaseInsensitiveCompare(), CaseSensitiveCompare(), and FindSortedKey().

size_t csStringArray::FindSortedKey csArrayCmp< char const *, char const * >  comparekey,
size_t *  candidate = 0
const [inline]
 

Find an element based on some key, using a comparison function.

Returns:
csArrayItemNotFound if not found, else item index.
Remarks:
The array must be sorted.

Definition at line 106 of file stringarray.h.

References csArray< const char *, csStringArrayElementHandler >::FindSortedKey().

Referenced by FindSortedKey().

size_t csStringArray::InsertSorted const char *  item,
bool  case_sensitive = true,
size_t *  equal_index = 0
[inline]
 

Insert an element at a sorted position.

Remarks:
Assumes array is already sorted.

Definition at line 130 of file stringarray.h.

References CaseInsensitiveCompare(), CaseSensitiveCompare(), and csArray< const char *, csStringArrayElementHandler >::InsertSorted().

char* csStringArray::Pop  )  [inline]
 

Pop an element from tail end of array.

Remarks:
Caller is responsible for invoking delete[] on the returned string when no longer needed.

Reimplemented from csArray< const char *, csStringArrayElementHandler >.

Definition at line 143 of file stringarray.h.

References CS_ASSERT, csArray< const char *, csStringArrayElementHandler >::Get(), csArray< const char *, csStringArrayElementHandler >::GetSize(), csArray< const char *, csStringArrayElementHandler >::InitRegion(), and csArray< const char *, csStringArrayElementHandler >::SetSize().

void csStringArray::Sort bool  case_sensitive = true  )  [inline]
 

Sort array.

Parameters:
case_sensitive If true, consider case when performing comparison. (default: yes)

Definition at line 93 of file stringarray.h.

References CaseInsensitiveCompare(), CaseSensitiveCompare(), and Sort().

void csStringArray::Sort int(*)(char const *const &, char const *const &)  compare  )  [inline]
 

Sort array based on comparison function.

Reimplemented from csArray< const char *, csStringArrayElementHandler >.

Definition at line 83 of file stringarray.h.

References csArray< const char *, csStringArrayElementHandler >::Sort().

Referenced by Sort().


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.4.4