Пространства имён
Варианты
Действия

std::forward_list::merge

Материал из cppreference.com

 
 
 
std::forward_list
Член функций
Оригинал:
Member functions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
forward_list::forward_list
forward_list::~forward_list
forward_list::operator=
forward_list::assign
forward_list::get_allocator
Элемент доступа
Оригинал:
Element access
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
forward_list::front
Итераторы
Оригинал:
Iterators
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
forward_list::before_begin
forward_list::cbefore_begin
forward_list::begin
forward_list::cbegin
forward_list::end
forward_list::cend
Потенциала
Оригинал:
Capacity
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
forward_list::empty
forward_list::max_size
Модификаторы
Оригинал:
Modifiers
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
forward_list::clear
forward_list::insert_after
forward_list::emplace_after
forward_list::erase_after
forward_list::push_front
forward_list::emplace_front
forward_list::pop_front
forward_list::resize
forward_list::swap
Операции
Оригинал:
Operations
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
forward_list::merge
forward_list::splice_after
forward_list::remove
forward_list::remove_if
forward_list::reverse
forward_list::unique
forward_list::sort
 
void merge( forward_list& other );
(1) (начиная с C++11)
void merge( forward_list&& other );
(1) (начиная с C++11)
template <class Compare>
void merge( forward_list& other, Compare comp );
(2) (начиная с C++11)
template <class Compare>
void merge( forward_list&& other, Compare comp );
(2) (начиная с C++11)
Слияние двух отсортированных списков в один. Списки должны быть отсортированы в порядке возрастания.
Оригинал:
Merges two sorted lists into one. The lists should be sorted into ascending order.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Нет элементы копируются. Контейнер other становится пустым после операции. Функция ничего не делает, если this == &other. Если get_allocator() != other.get_allocator(), поведение не определено. Нет итераторы или ссылки стали недействительны, кроме того, что итераторы переехал элементы теперь обратиться в *this, а не в other. Первый вариант используется operator< для сравнения элементов, вторая версия использует данную функцию сравнения comp.
Оригинал:
No elements are copied. The container other becomes empty after the operation. The function does nothing if this == &other. If get_allocator() != other.get_allocator(), the behavior is undefined. No iterators or references become invalidated, except that the iterators of moved elements now refer into *this, not into other. The first version uses operator< to compare the elements, the second version uses the given comparison function comp.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Параметры

other -
другой контейнер для объединения
Оригинал:
another container to merge
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
comp - comparison function which returns ​true if the first argument is less than the second.

The signature of the comparison function should be equivalent to the following:

 bool cmp(const Type1 &a, const Type2 &b);

The signature does not need to have const &, but the function must not modify the objects passed to it.
Типы Type1 и Type2 должны быть таковы, что объект типа forward_list<T,Allocator>::const_iterator может быть разыменован и затем неявно преобразован в оба из них. ​

[править] Возвращаемое значение

(Нет)
Оригинал:
(none)
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

#include <iostream>
#include <forward_list>
 
std::ostream& operator<<(std::ostream& ostr, const std::forward_list<int>& list)
{
    for (auto &i : list) {
        ostr << " " << i;
    }
    return ostr;
}
 
int main()
{
    std::forward_list<int> list1 = { 5,9,0,1,3 };
    std::forward_list<int> list2 = { 8,7,2,6,4 };
 
    list1.sort();
    list2.sort();
    std::cout << "list1:  " << list1 << "\n";
    std::cout << "list2:  " << list2 << "\n";
    list1.merge(list2);
    std::cout << "merged: " << list1 << "\n";
}

Вывод:

list1:   0 1 3 5 9
list2:   2 4 6 7 8
merged:  0 1 2 3 4 5 6 7 8 9

[править] Сложность

в большинстве сравнений size() + other.size() - 1.
Оригинал:
at most size() + other.size() - 1 comparisons.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] См. также

перемещает элементы из другого forward_list
Оригинал:
moves elements from another forward_list
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(public функция-член) [edit]