Qt:Документация 4.3.2/qstringref

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск
40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

Содержание

[править] QStringRef Class Reference
[модуль QtCore ]

The QStringRef class provides a thin wrapper around QString substrings. More...

 #include <QStringRef>

Note: All the functions in this class are reentrant.

This class was introduced in Qt 4.3.

[править] Открытые функции

[править] Связанные не-члены

  • bool operator< ( const QStringRef & s1, const QStringRef & s2 )
  • bool operator<= ( const QStringRef & s1, const QStringRef & s2 )
  • bool operator== ( const QStringRef & s1, const QStringRef & s2 )
  • bool operator== ( const QString & s1, const QStringRef & s2 )
  • bool operator== ( const QLatin1String & s1, const QStringRef & s2 )
  • bool operator> ( const QStringRef & s1, const QStringRef & s2 )
  • bool operator>= ( const QStringRef & s1, const QStringRef & s2 )

[править] Подробное описание

The QStringRef class provides a thin wrapper around QString substrings.

QStringRef provides a read-only subset of the QString API.

A string reference explicitly references a portion of a string() with a given size(), starting at a specific position(). Calling toString() returns a copy of the data as a real QString instance.

This class is designed to improve the performance of substring handling when manipulating substrings obtained from existing QString instances. QStringRef avoids the memory allocation and reference counting overhead of a standard QString by simply referencing a part of the original string. This can prove to be advantageous in low level code, such as that used in a parser, at the expense of potentially more complex code.

For most users, there are no semantic benefits to using QStringRef instead of QString since QStringRef requires attention to be paid to memory management issues, potentially making code more complex to write and maintain.

Warning: A QStringRef is only valid as long as the referenced string exists. If the original string is deleted, the string reference points to an invalid memory location.

We suggest that you only use this class in stable code where profiling has clearly identified that performance improvements can be made by replacing standard string operations with the optimized substring handling provided by this class.

See also Implicitly Shared Classes.


[править] Описание функций-членов

[править]
QStringRef::QStringRef ()

Constructs an empty string reference.

[править]
QStringRef::QStringRef ( const QString * string, int position, int length )

Constructs a string reference to the range of characters in the given string specified by the starting position and length in characters.

Warning: This function exists to improve performance as much as possible, and performs no bounds checking. For program correctness, position and length must describe a valid substring of string.

This means that the starting position must be positive or 0 and smaller than string's length, and length must be positive or 0 but smaller than the string's length minus the starting position; i.e, 0 <= position < string-> length() and 0 <= length <= string-> length() - position must both be satisfied.

[править]
QStringRef::QStringRef ( const QString * string )

Constructs a string reference to the given string.

[править]
QStringRef::QStringRef ( const QStringRef & other )

Constructs a copy of the other string reference.

[править]
QStringRef::~QStringRef ()

Destroys the string reference.

Since this class is only used to refer to string data, and does not take ownership of it, no memory is freed when instances are destroyed.

[править]
QStringRef QStringRef::appendTo ( QString * string ) const

Appends the string reference to string, and returns a new reference to the combined string data.

[править]
const QChar QStringRef::at ( int position ) const

Returns the character at the given index position in the string reference.

The position must be a valid index position in the string (i.e., 0 <= position < size()).

[править]
void QStringRef::clear ()

Clears the contents of the string reference by making it null and empty.

See also isEmpty() and isNull().

[править]
const QChar * QStringRef::constData () const

Same as unicode().

[править]
int QStringRef::count () const

Returns the number of characters in this string.

See also position().

[править]
const QChar * QStringRef::data () const

Same as unicode().

[править]
bool QStringRef::isEmpty () const

Returns true if the string reference has no characters; otherwise returns false.

A string reference is empty if its size is zero.

See also size().

[править]
bool QStringRef::isNull () const

Returns true if string() returns a null pointer or a pointer to a null string; otherwise returns true.

See also size().

[править]
int QStringRef::length () const

Returns the number of characters in this substring.

See also position().

[править]
int QStringRef::position () const

Returns the starting position in the referenced string that is referred to by the string reference.

See also size() and string().

[править]
int QStringRef::size () const

Returns the number of characters referred to by the string reference.

See also position() and string().

[править]
const QString * QStringRef::string () const

Returns a pointer to the string referred to by the string reference, or 0 if it does not reference a string.

See also unicode().

[править]
QString QStringRef::toString () const

Returns a copy of the string reference as a QString object.

If the string reference is not a complete reference of the string (meaning that position() is 0 and size() equals string()-> size()), this function will allocate a new string to return.

See also string().

[править]
const QChar * QStringRef::unicode () const

Returns a Unicode representation of the string reference. Since the data stems directly from the referenced string, it is not null-terminated unless the string reference includes the string's null terminator.

See also string().

[править]
QStringRef & QStringRef::operator= ( const QStringRef & other )

Assigns the other string reference to this string reference, and returns the result.

[править]
QStringRef & QStringRef::operator= ( const QString * string )

This is an overloaded member function, provided for convenience.

Constructs a string reference to the given string and assigns it to this string reference, returning the result.


[править] Связанные не-члены

[править]
bool operator< ( const QStringRef & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string reference s1 is lexically less than string reference s2; otherwise returns false.

The comparison is based exclusively on the numeric Unicode values of the characters and is very fast, but is not what a human would expect. Consider sorting user-interface strings using the QString::localeAwareCompare() function.

[править]
bool operator<= ( const QStringRef & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string reference s1 is lexically less than or equal to string reference s2; otherwise returns false.

The comparison is based exclusively on the numeric Unicode values of the characters and is very fast, but is not what a human would expect. Consider sorting user-interface strings using the QString::localeAwareCompare() function.

[править]
bool operator== ( const QStringRef & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string reference s1 is lexically equal to string reference s2; otherwise returns false.

[править]
bool operator== ( const QString & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string s1 is lexically equal to string reference s2; otherwise returns false.

[править]
bool operator== ( const QLatin1String & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string s1 is lexically equal to string reference s2; otherwise returns false.

[править]
bool operator> ( const QStringRef & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string reference s1 is lexically greater than string reference s2; otherwise returns false.

The comparison is based exclusively on the numeric Unicode values of the characters and is very fast, but is not what a human would expect. Consider sorting user-interface strings using the QString::localeAwareCompare() function.

[править]
bool operator>= ( const QStringRef & s1, const QStringRef & s2 )

This is an overloaded member function, provided for convenience.

Returns true if string reference s1 is lexically greater than or equal to string reference s2; otherwise returns false.

The comparison is based exclusively on the numeric Unicode values of the characters and is very fast, but is not what a human would expect. Consider sorting user-interface strings using the QString::localeAwareCompare() function.


Copyright © 2007 Trolltech Trademarks
Qt 4.3.2