From c9ddb2ba39edaf4d18d1a841420bc13901697492 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sun, 6 Nov 2016 22:26:57 +0000 Subject: [PATCH] Added missing methods in CSequence. --- src/blackmisc/sequence.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/blackmisc/sequence.h b/src/blackmisc/sequence.h index 6ef26221a..4af762ae5 100644 --- a/src/blackmisc/sequence.h +++ b/src/blackmisc/sequence.h @@ -180,6 +180,10 @@ namespace BlackMisc //! \pre The sequence must be initialized. void push_back(T &&value) { Q_ASSERT(pimpl()); pimpl()->push_back(std::move(value)); } + //! Move-insert as first element. + //! \pre The sequence must be initialized. + void push_front(T &&value) { insert(begin(), std::move(value)); } + //! Appends all elements from another sequence at the end of this sequence. //! \pre This sequence must be initialized. void push_back(const CSequence &other) { std::copy(other.begin(), other.end(), std::back_inserter(*this)); } @@ -228,6 +232,10 @@ namespace BlackMisc //! \pre The sequence must contain at least one element. void pop_back() { Q_ASSERT(!empty()); pimpl()->pop_back(); } + //! Removes an element at the end of the sequence. + //! \pre The sequence must contain at least one element. + void pop_front() { erase(begin()); } + //! Remove the element pointed to by the given iterator. //! \return An iterator to the position of the next element after the one removed. //! \pre The sequence must be initialized.