mirror of
https://github.com/BlackMATov/flat.hpp.git
synced 2025-12-16 22:16:58 +07:00
remove O(n^2) complexity from range and initialiser list inserts #7
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
#include <type_traits>
|
||||
#include <initializer_list>
|
||||
|
||||
#include "detail/eq_compare.hpp"
|
||||
#include "detail/pair_compare.hpp"
|
||||
#include "detail/is_transparent.hpp"
|
||||
|
||||
@@ -315,9 +316,9 @@ namespace flat_hpp
|
||||
|
||||
template < typename InputIter >
|
||||
void insert(InputIter first, InputIter last) {
|
||||
while ( first != last ) {
|
||||
insert(*first++);
|
||||
}
|
||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||
std::sort(mid_iter, data_.end(), value_comp());
|
||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
||||
}
|
||||
|
||||
void insert(std::initializer_list<value_type> ilist) {
|
||||
|
||||
Reference in New Issue
Block a user