summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/text/qbytearray.cpp15
-rw-r--r--src/corelib/text/qbytearray.h1
-rw-r--r--src/corelib/text/qstring.cpp15
-rw-r--r--src/corelib/text/qstring.h1
4 files changed, 32 insertions, 0 deletions
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp
index 4679c5a05d..3845946ce9 100644
--- a/src/corelib/text/qbytearray.cpp
+++ b/src/corelib/text/qbytearray.cpp
@@ -1115,6 +1115,21 @@ QByteArray qUncompress(const uchar* data, qsizetype nbytes)
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)
Constructs a copy of \a other.
diff --git a/src/corelib/text/qbytearray.h b/src/corelib/text/qbytearray.h
index 9f646aaa62..e185887ad7 100644
--- a/src/corelib/text/qbytearray.h
+++ b/src/corelib/text/qbytearray.h
@@ -497,6 +497,7 @@ public:
void push_front(QByteArrayView a)
{ prepend(a); }
void shrink_to_fit() { squeeze(); }
+ iterator erase(const_iterator first, const_iterator last);
static inline QByteArray fromStdString(const std::string &s);
inline std::string toStdString() const;
diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp
index dd00456fb2..cc2c093cea 100644
--- a/src/corelib/text/qstring.cpp
+++ b/src/corelib/text/qstring.cpp
@@ -8512,6 +8512,21 @@ bool QString::isRightToLeft() const
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()
\since 5.10
diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h
index 013b367b5c..fa4eeb0367 100644
--- a/src/corelib/text/qstring.h
+++ b/src/corelib/text/qstring.h
@@ -1016,6 +1016,7 @@ public:
inline void push_front(QChar c) { prepend(c); }
inline void push_front(const QString &s) { prepend(s); }
void shrink_to_fit() { squeeze(); }
+ iterator erase(const_iterator first, const_iterator last);
static inline QString fromStdString(const std::string &s);
inline std::string toStdString() const;