std::list::merge
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody> void merge( list& other ); |
(1) | |
void merge( list&& other ); |
(1) | (начиная с C++11) |
template <class Compare> void merge( list& other, Compare comp ); |
(2) | |
template <class Compare> void merge( list&& other, Compare comp ); |
(2) | (начиная с C++11) |
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
other становится пустым после операции. Функция ничего не делает, если this == &other. Если get_allocator() != other.get_allocator(), поведение не определено. Нет итераторы или ссылки стали недействительны, кроме того, что итераторы переехал элементы теперь обратиться в *this, а не в other. Первый вариант используется operator< для сравнения элементов, вторая версия использует данную функцию сравнения comp.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.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Параметры
| other | — | другой контейнер для объединения
Оригинал: another container to merge Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| comp | — | объект функции сравнения (т.е. объект, удовлетворяющий требованиям Compare), который возвращает true, если первый аргумент "меньше", чем второй.Определение сравнения должно быть эквивалентно:
Использование |
Возвращаемое значение
(Нет)
Пример
#include <iostream>
#include <list>
std::ostream& operator<<(std::ostream& ostr, const std::list<int>& list)
{
for (auto &i : list) {
ostr << " " << i;
}
return ostr;
}
int main()
{
std::list<int> list1 = { 5,9,0,1,3 };
std::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.size() + other.size() - 1 comparisons.Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
См. также
перемещает элементы из другого list (public функция-элемент) |