UtfString
|
An iterator that iterates through the code points in a Unicode string in reverse order. More...
#include <UnicodeString.h>
Inherits iterator< std::random_access_iterator_tag, UnicodeChar >.
Public Member Functions | |
reverse_iterator () | |
Creates an empty reverse iterator. More... | |
reverse_iterator (const Utf8String::reverse_iterator &utf8StringReverseIterator) | |
Constructs a reverse iterator for UnicodeString using a Utf8String reverse iterator. More... | |
reverse_iterator (const Utf16String::reverse_iterator &utf16StringReverseIterator) | |
Constructs a reverse iterator for UnicodeString using a Utf16String reverse iterator. More... | |
reverse_iterator (const UnicodeString::reverse_iterator &otherIterator) | |
Constructs a reverse iterator for UnicodeString using another iterator. More... | |
reverse_iterator (const UnicodeString::iterator &iterator) | |
Constructs a reverse iterator for UnicodeString using an iterator. More... | |
reverse_iterator & | operator= (const UnicodeString::reverse_iterator &otherIterator) |
Assigns the value of another reverse iterator to this reverse iterator. More... | |
~reverse_iterator () | |
Cleans up before the iterator is destroyed. | |
bool | empty () const |
Indicates whether this iterator is an empty iterator. More... | |
bool | operator== (const reverse_iterator &otherIterator) const |
Compares this reverse iterator with another reverse iterator and tests for equality. More... | |
bool | operator!= (const reverse_iterator &otherIterator) const |
Compares this reverse iterator with another reverse iterator and tests for inequality. More... | |
bool | operator< (const reverse_iterator &otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes before the other iterator in the string. More... | |
bool | operator<= (const reverse_iterator &otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes before or is at the same position the other iterator in the string. More... | |
bool | operator> (const reverse_iterator &otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes after the other iterator in the string. More... | |
bool | operator>= (const reverse_iterator &otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes after or is at the same position the other iterator in the string. More... | |
reverse_iterator & | operator++ () |
Increments this reverse iterator to the previous position in the UnicodeString. More... | |
reverse_iterator | operator++ (int) |
Increments this reverse iterator to the previous position in the UnicodeString. More... | |
reverse_iterator & | operator+= (size_t offset) |
Increments this iterator by a specific offset. More... | |
reverse_iterator | operator+ (size_t offset) |
Creates an iterator that has the position of this iterator incremented by a specific offset. More... | |
reverse_iterator & | operator-- () |
Decrements this reverse iterator to the next position in the UnicodeString. More... | |
reverse_iterator | operator-- (int) |
Decrements this reverse iterator to the next position in the UnicodeString. More... | |
reverse_iterator & | operator-= (size_t offset) |
Decrements this iterator by a specific offset. More... | |
reverse_iterator | operator- (size_t offset) |
Creates an iterator that has the position of this iterator decremented by a specific offset. More... | |
UnicodeCharReference | operator* () |
Gets the character at the position of this reverse iterator. More... | |
UnicodeCharReference * | operator-> () |
Gets a pointer to the character at the position of this reverse iterator. More... | |
An iterator that iterates through the code points in a Unicode string in reverse order.
This iterator assumes that the Unicode string being iterated over is a valid Unicode string.
There is also the concept of an "empty" iterator. An empty iterator is one that is created when begin() or end() is called on an empty UnicodeString. Attempting to change the position of an empty iterator using unary operator (such as "+=") will only result in nothing happening. Attempting to get an iterator for another position using a binary operator (such as "+") will result in another empty iterator being created. Dereferencing an iterator via the "*" or "->" operators will result in an assertion failure in a debug build or undefined behavior in a release build. Empty iterators are always equal to each other.
UtfString::UnicodeString::reverse_iterator::reverse_iterator | ( | ) |
Creates an empty reverse iterator.
For a description of an empty iterator, see the class description
UtfString::UnicodeString::reverse_iterator::reverse_iterator | ( | const Utf8String::reverse_iterator & | utf8StringReverseIterator) |
Constructs a reverse iterator for UnicodeString using a Utf8String reverse iterator.
This function assumes that utf8StringReverseIterator is a valid iterator
[in] | utf8StringReverseIterator | The Utf8String reverse iterator to use in constructing this iterator |
UtfString::UnicodeString::reverse_iterator::reverse_iterator | ( | const Utf16String::reverse_iterator & | utf16StringReverseIterator) |
Constructs a reverse iterator for UnicodeString using a Utf16String reverse iterator.
This function assumes that utf16StringReverseIterator is a valid iterator
[in] | utf16StringReverseIterator | The Utf16String reverse iterator to use in constructing this iterator |
UtfString::UnicodeString::reverse_iterator::reverse_iterator | ( | const UnicodeString::reverse_iterator & | otherIterator) |
Constructs a reverse iterator for UnicodeString using another iterator.
This iterator will take on the same characteristics and position as the other iterator
[in] | otherIterator | The other reverse iterator to use in constructing this reverse iterator |
UtfString::UnicodeString::reverse_iterator::reverse_iterator | ( | const UnicodeString::iterator & | iterator) |
Constructs a reverse iterator for UnicodeString using an iterator.
This reverse iterator will take on the same position as the iterator.
[in] | iterator | The iterator to use in constructing this reverse iterator |
bool UtfString::UnicodeString::reverse_iterator::empty | ( | ) | const |
Indicates whether this iterator is an empty iterator.
This is mainly for informational purposes. If you use iterators properly, comparing the begin iterator to the end iterator, you won't even need to know when an empty iterator appears. In case want to know whether an iterator is empty (as opposed to an non-empty iterator that has been incremented/decremented beyond the boundaries of a string), you can use this function.
bool UtfString::UnicodeString::reverse_iterator::operator!= | ( | const reverse_iterator & | otherIterator) | const |
Compares this reverse iterator with another reverse iterator and tests for inequality.
Empty iterators are always equal to other empty iterators and are always unequal to non-empty iterators.
[in] | otherIterator | The other reverse iterator to be compared with this reverse iterator |
UnicodeCharReference UtfString::UnicodeString::reverse_iterator::operator* | ( | ) |
Gets the character at the position of this reverse iterator.
If this reverse iterator is not pointing to a position in a UnicodeString, the result will be undefined.
The reference returned by this function will be invalidated if the iterator is changed in any way. Changing the value of the returned object will not change the string.
If this iterator is an empty iterator, using this operator will result in an assertion failure in a debug build and undefined behavior (most likely a crash) in a release build.
reverse_iterator UtfString::UnicodeString::reverse_iterator::operator+ | ( | size_t | offset) |
Creates an iterator that has the position of this iterator incremented by a specific offset.
Note that since a Unicode string contains variable-width characters, we have to iterate over the code units. As a result, this operator has a performance of O(N). Hence, this operator should be used with care.
[in] | offset | The offset to be used when incrementing this position of this iterator |
reverse_iterator& UtfString::UnicodeString::reverse_iterator::operator++ | ( | ) |
Increments this reverse iterator to the previous position in the UnicodeString.
This is the prefix operator.
reverse_iterator UtfString::UnicodeString::reverse_iterator::operator++ | ( | int | ) |
Increments this reverse iterator to the previous position in the UnicodeString.
This is a postfix operator.
reverse_iterator& UtfString::UnicodeString::reverse_iterator::operator+= | ( | size_t | offset) |
Increments this iterator by a specific offset.
Note that since a Unicode string contains variable-width characters, we have to iterate over the code units. As a result, this operator has a performance of O(N). Hence, this operator should be used with care.
[in] | offset | The offset to use in incrementing this iterator |
reverse_iterator UtfString::UnicodeString::reverse_iterator::operator- | ( | size_t | offset) |
Creates an iterator that has the position of this iterator decremented by a specific offset.
Note that since a Unicode string contains variable-width characters, we have to iterate over the code units. As a result, this operator has a performance of O(N). Hence, this operator should be used with care.
[in] | offset | The offset to use in decrementing the position of this iterator |
reverse_iterator& UtfString::UnicodeString::reverse_iterator::operator-- | ( | ) |
Decrements this reverse iterator to the next position in the UnicodeString.
This is a prefix operator.
reverse_iterator UtfString::UnicodeString::reverse_iterator::operator-- | ( | int | ) |
Decrements this reverse iterator to the next position in the UnicodeString.
This is a postfix operator.
reverse_iterator& UtfString::UnicodeString::reverse_iterator::operator-= | ( | size_t | offset) |
Decrements this iterator by a specific offset.
Note that since a Unicode string contains variable-width characters, we have to iterate over the code units. As a result, this operator has a performance of O(N). Hence, this operator should be used with care.
[in] | offset | The offset to use in decrementing this iterator |
UnicodeCharReference* UtfString::UnicodeString::reverse_iterator::operator-> | ( | ) |
Gets a pointer to the character at the position of this reverse iterator.
If this reverse iterator is not pointing to a position in a UnicodeString, the result will be undefined.
The pointer returned by this function will be invalidated if the iterator is changed in any way.
If this iterator is an empty iterator, using this operator will result in an assertion failure in a debug build and undefined behavior (most likely a crash) in a release build.
bool UtfString::UnicodeString::reverse_iterator::operator< | ( | const reverse_iterator & | otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes before the other iterator in the string.
Empty iterators are considered to be less than non-empty iterators.
This operator has a performance of O(1).
[in] | otherIterator | The other iterator to be compared with this iterator |
bool UtfString::UnicodeString::reverse_iterator::operator<= | ( | const reverse_iterator & | otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes before or is at the same position the other iterator in the string.
Empty iterators are considered to be less than non-empty iterators.
This operator has a performance of O(1).
[in] | otherIterator | The other iterator to be compared with this iterator |
reverse_iterator& UtfString::UnicodeString::reverse_iterator::operator= | ( | const UnicodeString::reverse_iterator & | otherIterator) |
Assigns the value of another reverse iterator to this reverse iterator.
This reverse iterator will take on the same characteristics and position as the other reverse iterator
[in] | otherIterator | The other reverse iterator to be assigned to this reverse iterator |
bool UtfString::UnicodeString::reverse_iterator::operator== | ( | const reverse_iterator & | otherIterator) | const |
Compares this reverse iterator with another reverse iterator and tests for equality.
Empty iterators are always equal to other empty iterators and are always unequal to non-empty iterators.
[in] | otherIterator | The other reverse iterator to be compared with this reverse iterator |
bool UtfString::UnicodeString::reverse_iterator::operator> | ( | const reverse_iterator & | otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes after the other iterator in the string.
Non-Empty iterators are considered to be greater than than empty iterators.
This operator has a performance of O(1).
[in] | otherIterator | The other iterator to be compared with this iterator |
bool UtfString::UnicodeString::reverse_iterator::operator>= | ( | const reverse_iterator & | otherIterator) |
Compares this iterator to another iterator and tests whether this iterator comes after or is at the same position the other iterator in the string.
Non-Empty iterators are considered to be greater than than empty iterators.
This operator has a performance of O(1).
[in] | otherIterator | The other iterator to be compared with this iterator |