From 87fe3eec2d1b44e729d5ca9fcf4f431ee2372a2f Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Thu, 3 Feb 2022 17:16:26 +0000 Subject: [PATCH] Replaced post increment with pre increment --- include/etl/algorithm.h | 6 ++++-- include/etl/deque.h | 3 ++- include/etl/flat_map.h | 7 +++++-- include/etl/flat_multimap.h | 7 +++++-- include/etl/flat_multiset.h | 7 +++++-- include/etl/flat_set.h | 7 +++++-- include/etl/map.h | 10 +++++++-- include/etl/multimap.h | 10 +++++++-- include/etl/multiset.h | 33 ++++++++++++++++++++++-------- include/etl/set.h | 35 +++++++++++++++++++++++++------- include/etl/standard_deviation.h | 3 ++- include/etl/unordered_map.h | 11 +++++++--- include/etl/unordered_multimap.h | 11 +++++++--- include/etl/unordered_multiset.h | 11 +++++++--- include/etl/unordered_set.h | 11 +++++++--- include/etl/variance.h | 3 ++- test/test_set.cpp | 21 ++++++++++++++----- 17 files changed, 147 insertions(+), 49 deletions(-) diff --git a/include/etl/algorithm.h b/include/etl/algorithm.h index 817cf6de..4e2832b2 100644 --- a/include/etl/algorithm.h +++ b/include/etl/algorithm.h @@ -1298,7 +1298,8 @@ namespace etl { while (first != last) { - etl::pop_heap(first, last--); + etl::pop_heap(first, last); + --last; } } @@ -1308,7 +1309,8 @@ namespace etl { while (first != last) { - etl::pop_heap(first, last--, compare); + etl::pop_heap(first, last, compare); + --last; } } diff --git a/include/etl/deque.h b/include/etl/deque.h index 400a9a3a..783cfba5 100644 --- a/include/etl/deque.h +++ b/include/etl/deque.h @@ -1437,7 +1437,8 @@ namespace etl // Create copy. for (size_t i = 0UL; i < n_create_copy; ++i) { - create_element_front(*from--); + create_element_front(*from); + --from; } // Move old. diff --git a/include/etl/flat_map.h b/include/etl/flat_map.h index 931c314b..d6ba9b05 100644 --- a/include/etl/flat_map.h +++ b/include/etl/flat_map.h @@ -978,11 +978,14 @@ namespace etl etl::iflat_map::iterator first = rhs.begin(); etl::iflat_map::iterator last = rhs.end(); - // Add all of the elements. + // Move all of the elements. while (first != last) { + typename etl::iflat_map::iterator temp = first; + ++temp; + this->insert(etl::move(*first)); - ++first; + first = temp; } } } diff --git a/include/etl/flat_multimap.h b/include/etl/flat_multimap.h index 6b9166a6..7ab44e7a 100644 --- a/include/etl/flat_multimap.h +++ b/include/etl/flat_multimap.h @@ -862,11 +862,14 @@ namespace etl etl::iflat_multimap::iterator first = rhs.begin(); etl::iflat_multimap::iterator last = rhs.end(); - // Add all of the elements. + // Move all of the elements. while (first != last) { + typename etl::iflat_multimap::iterator temp = first; + ++temp; + this->insert(etl::move(*first)); - ++first; + first = temp; } } } diff --git a/include/etl/flat_multiset.h b/include/etl/flat_multiset.h index d7d4fb48..075cb113 100644 --- a/include/etl/flat_multiset.h +++ b/include/etl/flat_multiset.h @@ -815,11 +815,14 @@ namespace etl etl::iflat_multiset::iterator first = rhs.begin(); etl::iflat_multiset::iterator last = rhs.end(); - // Add all of the elements. + // Move all of the elements. while (first != last) { + typename etl::iflat_multiset::iterator temp = first; + ++temp; + this->insert(etl::move(*first)); - ++first; + first = temp; } } } diff --git a/include/etl/flat_set.h b/include/etl/flat_set.h index 71990160..bf4d7ace 100644 --- a/include/etl/flat_set.h +++ b/include/etl/flat_set.h @@ -902,11 +902,14 @@ namespace etl etl::iflat_set::iterator first = rhs.begin(); etl::iflat_set::iterator last = rhs.end(); - // Add all of the elements. + // Move all of the elements. while (first != last) { + typename etl::iflat_set::iterator temp = first; + ++temp; + this->insert(etl::move(*first)); - ++first; + first = temp; } } } diff --git a/include/etl/map.h b/include/etl/map.h index da3f4cf6..f187e8de 100644 --- a/include/etl/map.h +++ b/include/etl/map.h @@ -2632,8 +2632,11 @@ namespace etl while (from != other.end()) { + typename etl::imap::iterator temp = from; + ++temp; + this->insert(etl::move(*from)); - ++from; + from = temp; } } } @@ -2700,8 +2703,11 @@ namespace etl while (from != rhs.end()) { + typename etl::imap::iterator temp = from; + ++temp; + this->insert(etl::move(*from)); - ++from; + from = temp; } } diff --git a/include/etl/multimap.h b/include/etl/multimap.h index c61d08a1..e3567241 100644 --- a/include/etl/multimap.h +++ b/include/etl/multimap.h @@ -2355,8 +2355,11 @@ namespace etl while (from != other.end()) { + typename etl::imultimap::iterator temp = from; + ++temp; + this->insert(etl::move(*from)); - ++from; + from = temp; } } } @@ -2420,8 +2423,11 @@ namespace etl while (from != rhs.end()) { + typename etl::imultimap::iterator temp = from; + ++temp; + this->insert(etl::move(*from)); - ++from; + from = temp; } } diff --git a/include/etl/multiset.h b/include/etl/multiset.h index 4ea39fe9..7592f0c0 100644 --- a/include/etl/multiset.h +++ b/include/etl/multiset.h @@ -939,6 +939,13 @@ namespace etl } private: + + // Convert to an iterator. + imultiset::iterator to_iterator() const + { + return imultiset::iterator(const_cast(*p_multiset), const_cast(p_node)); + } + // Pointer to multiset associated with this iterator const imultiset* p_multiset; @@ -1171,7 +1178,7 @@ namespace etl // Increment count for each node removed ++d; // Remove node using the other erase method - (void)erase(lower++); + lower = erase(lower); } // Return the total count erased @@ -1192,7 +1199,7 @@ namespace etl // Increment count for each node removed ++d; // Remove node using the other erase method - (void)erase(lower++); + lower = erase(lower); } // Return the total count erased @@ -1208,10 +1215,10 @@ namespace etl iterator next; while (first != last) { - next = erase(first++); + first = erase(first); } - return next; + return last.to_iterator(); } //********************************************************************* @@ -1336,7 +1343,8 @@ namespace etl { while (first != last) { - insert(*first++); + insert(*first); + ++first; } } @@ -1447,7 +1455,11 @@ namespace etl while (from != rhs.end()) { - insert(etl::move(*from++)); + typename etl::imultiset::iterator temp = from; + ++temp; + + this->insert(etl::move(*from)); + from = temp; } } @@ -2326,7 +2338,11 @@ namespace etl while (from != other.end()) { - this->insert(etl::move(*from++)); + typename etl::imultiset::iterator temp = from; + ++temp; + + this->insert(etl::move(*from)); + from = temp; } } } @@ -2392,7 +2408,8 @@ namespace etl while (from != rhs.end()) { - this->insert(etl::move(*from++)); + this->insert(etl::move(*from)); + ++from; } } diff --git a/include/etl/set.h b/include/etl/set.h index 5249f688..c5bad9f0 100644 --- a/include/etl/set.h +++ b/include/etl/set.h @@ -774,6 +774,13 @@ namespace etl } private: + + // Convert to an iterator. + iset::iterator to_iterator() const + { + return iset::iterator(const_cast(*p_set), const_cast(p_node)); + } + // Pointer to set associated with this iterator const iset* p_set; @@ -814,7 +821,11 @@ namespace etl while (from != rhs.end()) { - insert(etl::move(*from++)); + typename etl::iset::iterator temp = from; + ++temp; + + this->insert(etl::move(*from)); + from = temp; } } @@ -1047,13 +1058,12 @@ namespace etl //************************************************************************* iterator erase(const_iterator first, const_iterator last) { - iterator next; while (first != last) { - next = erase(first++); + first = erase(first); } - return next; + return last.to_iterator(); } //********************************************************************* @@ -1204,7 +1214,8 @@ namespace etl { while (first != last) { - insert(*first++); + insert(*first); + ++first; } } @@ -2523,13 +2534,19 @@ namespace etl set(set&& other) : etl::iset(node_pool, MAX_SIZE) { + int count = 0; + if (this != &other) { typename etl::iset::iterator from = other.begin(); while (from != other.end()) { - this->insert(etl::move(*from++)); + typename etl::iset::iterator temp = from; + ++temp; + + this->insert(etl::move(*from)); + from = temp; } } } @@ -2594,7 +2611,11 @@ namespace etl while (from != rhs.end()) { - this->insert(etl::move(*from++)); + typename etl::iset::iterator temp = from; + ++temp; + + this->insert(etl::move(*from)); + from = temp; } } diff --git a/include/etl/standard_deviation.h b/include/etl/standard_deviation.h index 4c99ed4a..f8d6583d 100644 --- a/include/etl/standard_deviation.h +++ b/include/etl/standard_deviation.h @@ -132,7 +132,8 @@ namespace etl { while (first != last) { - add(*first++); + add(*first); + ++first; } } diff --git a/include/etl/unordered_map.h b/include/etl/unordered_map.h index 267c3f33..0eb86f96 100644 --- a/include/etl/unordered_map.h +++ b/include/etl/unordered_map.h @@ -745,7 +745,8 @@ namespace etl while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -937,7 +938,8 @@ namespace etl { while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -1359,7 +1361,10 @@ namespace etl { while (first != last) { - insert(etl::move(*first++)); + iterator temp = first; + ++temp; + insert(etl::move(*first)); + first = temp; } } #endif diff --git a/include/etl/unordered_multimap.h b/include/etl/unordered_multimap.h index 711dd2c5..2722671d 100644 --- a/include/etl/unordered_multimap.h +++ b/include/etl/unordered_multimap.h @@ -633,7 +633,8 @@ namespace etl while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -811,7 +812,8 @@ namespace etl { while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -1265,7 +1267,10 @@ namespace etl { while (first != last) { - insert(etl::move(*first++)); + iterator temp = first; + ++temp; + insert(etl::move(*first)); + first = temp; } } #endif diff --git a/include/etl/unordered_multiset.h b/include/etl/unordered_multiset.h index 9416d913..8c710a75 100644 --- a/include/etl/unordered_multiset.h +++ b/include/etl/unordered_multiset.h @@ -629,7 +629,8 @@ namespace etl while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -794,7 +795,8 @@ namespace etl { while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -1249,7 +1251,10 @@ namespace etl { while (first != last) { - insert(etl::move(*first++)); + iterator temp = first; + ++temp; + insert(etl::move(*first)); + first = temp; } } #endif diff --git a/include/etl/unordered_set.h b/include/etl/unordered_set.h index fff062e8..9e83d928 100644 --- a/include/etl/unordered_set.h +++ b/include/etl/unordered_set.h @@ -630,7 +630,8 @@ namespace etl while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -816,7 +817,8 @@ namespace etl { while (first_ != last_) { - insert(*first_++); + insert(*first_); + ++first_; } } @@ -1249,7 +1251,10 @@ namespace etl while (first != last) { - insert(etl::move(*first++)); + iterator temp = first; + ++temp; + insert(etl::move(*first)); + first = temp; } } #endif diff --git a/include/etl/variance.h b/include/etl/variance.h index c5ee9b8f..1d11daf5 100644 --- a/include/etl/variance.h +++ b/include/etl/variance.h @@ -132,7 +132,8 @@ namespace etl { while (first != last) { - add(*first++); + add(*first); + ++first; } } diff --git a/test/test_set.cpp b/test/test_set.cpp index 24de3575..dc2b0762 100644 --- a/test/test_set.cpp +++ b/test/test_set.cpp @@ -45,12 +45,13 @@ static const size_t MAX_SIZE = 10UL; #define TEST_GREATER_THAN #ifdef TEST_GREATER_THAN -using Data = etl::set>; -using IData = etl::iset>; -using Compare_Data = std::set>; + using Data = etl::set>; + using IData = etl::iset>; + using Compare_Data = std::set>; #else -using Data = etl::set>; -using Compare_Data = std::set>; + using Data = etl::set>; + using IData = etl::iset>; + using Compare_Data = std::set>; #endif using ItemM = TestDataM; @@ -97,6 +98,11 @@ namespace return (lhs < rhs.k); } + bool operator <(const Key& lhs, const Key& rhs) + { + return (lhs.k < rhs.k); + } + SUITE(test_set) { //************************************************************************* @@ -244,6 +250,11 @@ namespace CHECK_EQUAL(2, ItemM(2).value); CHECK_EQUAL(3, ItemM(3).value); CHECK_EQUAL(4, ItemM(4).value); + + CHECK(data2.find(ItemM(1)) != data2.end()); + CHECK(data2.find(ItemM(2)) != data2.end()); + CHECK(data2.find(ItemM(3)) != data2.end()); + CHECK(data2.find(ItemM(4)) != data2.end()); } //*************************************************************************