mirror of
https://github.com/BlackMATov/flat.hpp.git
synced 2026-02-04 15:07:02 +07:00
fix range merging order bug
This commit is contained in:
@@ -633,7 +633,7 @@ namespace flat_hpp
|
|||||||
void insert_range_(Iter first, Iter last) {
|
void insert_range_(Iter first, Iter last) {
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::sort(mid_iter, data_.end(), value_comp());
|
std::sort(mid_iter, data_.end(), value_comp());
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), value_comp());
|
||||||
data_.erase(
|
data_.erase(
|
||||||
std::unique(data_.begin(), data_.end(),
|
std::unique(data_.begin(), data_.end(),
|
||||||
detail::eq_compare<value_compare>(value_comp())),
|
detail::eq_compare<value_compare>(value_comp())),
|
||||||
@@ -644,7 +644,7 @@ namespace flat_hpp
|
|||||||
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
||||||
assert(detail::is_sorted(first, last, value_comp()));
|
assert(detail::is_sorted(first, last, value_comp()));
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), value_comp());
|
||||||
data_.erase(
|
data_.erase(
|
||||||
std::unique(data_.begin(), data_.end(),
|
std::unique(data_.begin(), data_.end(),
|
||||||
detail::eq_compare<value_compare>(value_comp())),
|
detail::eq_compare<value_compare>(value_comp())),
|
||||||
|
|||||||
@@ -568,14 +568,14 @@ namespace flat_hpp
|
|||||||
void insert_range_(Iter first, Iter last) {
|
void insert_range_(Iter first, Iter last) {
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::sort(mid_iter, data_.end(), value_comp());
|
std::sort(mid_iter, data_.end(), value_comp());
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), value_comp());
|
||||||
}
|
}
|
||||||
|
|
||||||
template < typename Iter >
|
template < typename Iter >
|
||||||
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
||||||
assert(detail::is_sorted(first, last, value_comp()));
|
assert(detail::is_sorted(first, last, value_comp()));
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), value_comp());
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
container_type data_;
|
container_type data_;
|
||||||
|
|||||||
@@ -484,14 +484,14 @@ namespace flat_hpp
|
|||||||
void insert_range_(Iter first, Iter last) {
|
void insert_range_(Iter first, Iter last) {
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::sort(mid_iter, data_.end(), key_comp());
|
std::sort(mid_iter, data_.end(), key_comp());
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), key_comp());
|
||||||
}
|
}
|
||||||
|
|
||||||
template < typename Iter >
|
template < typename Iter >
|
||||||
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
||||||
assert(detail::is_sorted(first, last, key_comp()));
|
assert(detail::is_sorted(first, last, key_comp()));
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), key_comp());
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
container_type data_;
|
container_type data_;
|
||||||
|
|||||||
@@ -549,7 +549,7 @@ namespace flat_hpp
|
|||||||
void insert_range_(Iter first, Iter last) {
|
void insert_range_(Iter first, Iter last) {
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::sort(mid_iter, data_.end(), key_comp());
|
std::sort(mid_iter, data_.end(), key_comp());
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), key_comp());
|
||||||
data_.erase(
|
data_.erase(
|
||||||
std::unique(data_.begin(), data_.end(),
|
std::unique(data_.begin(), data_.end(),
|
||||||
detail::eq_compare<key_compare>(key_comp())),
|
detail::eq_compare<key_compare>(key_comp())),
|
||||||
@@ -560,7 +560,7 @@ namespace flat_hpp
|
|||||||
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
void insert_range_(sorted_range_t, Iter first, Iter last) {
|
||||||
assert(detail::is_sorted(first, last, key_comp()));
|
assert(detail::is_sorted(first, last, key_comp()));
|
||||||
const auto mid_iter = data_.insert(data_.end(), first, last);
|
const auto mid_iter = data_.insert(data_.end(), first, last);
|
||||||
std::inplace_merge(data_.begin(), mid_iter, data_.end());
|
std::inplace_merge(data_.begin(), mid_iter, data_.end(), key_comp());
|
||||||
data_.erase(
|
data_.erase(
|
||||||
std::unique(data_.begin(), data_.end(),
|
std::unique(data_.begin(), data_.end(),
|
||||||
detail::eq_compare<key_compare>(key_comp())),
|
detail::eq_compare<key_compare>(key_comp())),
|
||||||
|
|||||||
Reference in New Issue
Block a user