QString/QByteArray: add erase() for iterators
Otherwise they're not usable with iterator-based algorithms that e.g. remove, partition and the like. [ChangeLog][QtCore][QString] Added erase(). [ChangeLog][QtCore][QByteArray] Added erase(). Change-Id: I78829b1a5365dd53b6b6423ceedbc52edeafbc63 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
This commit is contained in:
parent
b475c3e67e
commit
5771591fbc
@ -1115,6 +1115,21 @@ QByteArray qUncompress(const uchar* data, qsizetype nbytes)
|
|||||||
squeeze().
|
squeeze().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.1
|
||||||
|
|
||||||
|
Removes from the byte array the characters in the half-open range
|
||||||
|
[ \a first , \a last ). Returns an iterator to the character
|
||||||
|
referred to by \a last before the erase.
|
||||||
|
*/
|
||||||
|
QByteArray::iterator QByteArray::erase(QByteArray::const_iterator first, QByteArray::const_iterator last)
|
||||||
|
{
|
||||||
|
const auto start = std::distance(cbegin(), first);
|
||||||
|
const auto len = std::distance(first, last);
|
||||||
|
remove(start, len);
|
||||||
|
return begin() + start;
|
||||||
|
}
|
||||||
|
|
||||||
/*! \fn QByteArray::QByteArray(const QByteArray &other)
|
/*! \fn QByteArray::QByteArray(const QByteArray &other)
|
||||||
|
|
||||||
Constructs a copy of \a other.
|
Constructs a copy of \a other.
|
||||||
|
@ -497,6 +497,7 @@ public:
|
|||||||
void push_front(QByteArrayView a)
|
void push_front(QByteArrayView a)
|
||||||
{ prepend(a); }
|
{ prepend(a); }
|
||||||
void shrink_to_fit() { squeeze(); }
|
void shrink_to_fit() { squeeze(); }
|
||||||
|
iterator erase(const_iterator first, const_iterator last);
|
||||||
|
|
||||||
static inline QByteArray fromStdString(const std::string &s);
|
static inline QByteArray fromStdString(const std::string &s);
|
||||||
inline std::string toStdString() const;
|
inline std::string toStdString() const;
|
||||||
|
@ -8512,6 +8512,21 @@ bool QString::isRightToLeft() const
|
|||||||
Appends the given \a ch character onto the end of this string.
|
Appends the given \a ch character onto the end of this string.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\since 6.1
|
||||||
|
|
||||||
|
Removes from the string the characters in the half-open range
|
||||||
|
[ \a first , \a last ). Returns an iterator to the character
|
||||||
|
referred to by \a last before the erase.
|
||||||
|
*/
|
||||||
|
QString::iterator QString::erase(QString::const_iterator first, QString::const_iterator last)
|
||||||
|
{
|
||||||
|
const auto start = std::distance(cbegin(), first);
|
||||||
|
const auto len = std::distance(first, last);
|
||||||
|
remove(start, len);
|
||||||
|
return begin() + start;
|
||||||
|
}
|
||||||
|
|
||||||
/*! \fn void QString::shrink_to_fit()
|
/*! \fn void QString::shrink_to_fit()
|
||||||
\since 5.10
|
\since 5.10
|
||||||
|
|
||||||
|
@ -1016,6 +1016,7 @@ public:
|
|||||||
inline void push_front(QChar c) { prepend(c); }
|
inline void push_front(QChar c) { prepend(c); }
|
||||||
inline void push_front(const QString &s) { prepend(s); }
|
inline void push_front(const QString &s) { prepend(s); }
|
||||||
void shrink_to_fit() { squeeze(); }
|
void shrink_to_fit() { squeeze(); }
|
||||||
|
iterator erase(const_iterator first, const_iterator last);
|
||||||
|
|
||||||
static inline QString fromStdString(const std::string &s);
|
static inline QString fromStdString(const std::string &s);
|
||||||
inline std::string toStdString() const;
|
inline std::string toStdString() const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user