QString: add resize(int, QChar)
This will be used in QTextStream to speed up padding processing. [ChangeLog][QtCore][QString] Added resize(int, QChar) overload. Change-Id: Id51f8cdacb167310157100b05cacf20e9a5d2716 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
This commit is contained in:
parent
050b682412
commit
8f166ccf40
@ -625,7 +625,7 @@ void Widget::resizeFunction()
|
||||
|
||||
//! [46]
|
||||
QString t = "Hello";
|
||||
t += QString(10, 'X');
|
||||
r.resize(t.size() + 10, 'X');
|
||||
// t == "HelloXXXXXXXXXX"
|
||||
//! [46]
|
||||
|
||||
|
@ -1652,9 +1652,7 @@ QString::QString(QChar ch)
|
||||
\snippet qstring/main.cpp 45
|
||||
|
||||
If you want to append a certain number of identical characters to
|
||||
the string, use \l operator+=() as follows rather than resize():
|
||||
|
||||
\snippet qstring/main.cpp 46
|
||||
the string, use the \l {QString::}{resize(int, QChar)} overload.
|
||||
|
||||
If you want to expand the string so that it reaches a certain
|
||||
width and fill the new positions with a particular character, use
|
||||
@ -1694,6 +1692,25 @@ void QString::resize(int size)
|
||||
}
|
||||
}
|
||||
|
||||
/*!
|
||||
\overload
|
||||
\since 5.7
|
||||
|
||||
Unlike \l {QString::}{resize(int)}, this overload
|
||||
initializes the new characters to \a fillChar:
|
||||
|
||||
\snippet qstring/main.cpp 46
|
||||
*/
|
||||
|
||||
void QString::resize(int size, QChar fillChar)
|
||||
{
|
||||
const int oldSize = length();
|
||||
resize(size);
|
||||
const int difference = length() - oldSize;
|
||||
if (difference > 0)
|
||||
std::fill_n(d->begin() + oldSize, difference, fillChar.unicode());
|
||||
}
|
||||
|
||||
/*! \fn int QString::capacity() const
|
||||
|
||||
Returns the maximum number of characters that can be stored in
|
||||
|
@ -233,6 +233,7 @@ public:
|
||||
inline int length() const;
|
||||
inline bool isEmpty() const;
|
||||
void resize(int size);
|
||||
void resize(int size, QChar fillChar);
|
||||
|
||||
QString &fill(QChar c, int size = -1);
|
||||
void truncate(int pos);
|
||||
|
@ -556,6 +556,7 @@ private slots:
|
||||
void nanAndInf();
|
||||
void compare_data();
|
||||
void compare();
|
||||
void resize();
|
||||
void resizeAfterFromRawData();
|
||||
void resizeAfterReserve();
|
||||
void resizeWithNegative() const;
|
||||
@ -6013,6 +6014,22 @@ void tst_QString::compare()
|
||||
}
|
||||
}
|
||||
|
||||
void tst_QString::resize()
|
||||
{
|
||||
QString s = QLatin1String("hello world");
|
||||
|
||||
s.resize(5);
|
||||
QCOMPARE(s, QLatin1String("hello"));
|
||||
s.resize(8);
|
||||
QCOMPARE(s.size(), 8);
|
||||
QVERIFY(s.startsWith(QLatin1String("hello")));
|
||||
|
||||
s.resize(10, QLatin1Char('n'));
|
||||
QCOMPARE(s.size(), 10);
|
||||
QVERIFY(s.startsWith(QLatin1String("hello")));
|
||||
QCOMPARE(s.right(2), QLatin1String("nn"));
|
||||
}
|
||||
|
||||
void tst_QString::resizeAfterFromRawData()
|
||||
{
|
||||
QString buffer("hello world");
|
||||
|
Loading…
x
Reference in New Issue
Block a user