std::list::splice
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody> void splice(const_iterator pos, list& other); |
(1) | |
void splice(const_iterator pos, list&& other); |
(1) | (начиная с C++11) |
void splice(const_iterator pos, list& other, const_iterator it); |
(2) | |
void splice(const_iterator pos, list&& other, const_iterator it); |
(2) | (начиная с C++11) |
void splice(const_iterator pos, list& other, const_iterator first, const_iterator last); |
(3) | |
void splice(const_iterator pos, list&& other, const_iterator first, const_iterator last); |
(3) | (начиная с C++11) |
Перемещение элементов из одного списка в другой.
Оригинал:
Moves elements from one list to another.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Нет элементы копируются. Поведение неопределено, если:
get_allocator() != other.get_allocator(). Нет итераторы или ссылки стали недействительны, итераторы переехал элементы теперь обратиться в *this, а не в other.Оригинал:
No elements are copied. The behavior is undefined if:
get_allocator() != other.get_allocator(). No iterators or references become invalidated, the iterators to moved elements now refer into *this, not into other.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
1)
Перемещение всех элементов из
other в *this. Элементы вставляются перед элементом, на который указывает pos. Контейнер other становится пустым после операции. Поведение неопределено, если this == &other.Оригинал:
Moves all elements from
other into *this. The elements are inserted before the element pointed to by pos. The container other becomes empty after the operation. The behavior is undefined if this == &other.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
2)
Перемещает элемент, на который указывает
it от other в *this. Элемент вставляется перед элементом, на который указывает pos.Оригинал:
Moves the element pointed to by
it from other into *this. The element is inserted before the element pointed to by pos.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
3)
Перемещение элементов в диапазоне от
[first, last) other в *this. Элементы вставляются перед элементом, на который указывает pos. Поведение неопределено, если pos это итератор в диапазоне [first,last).Оригинал:
Moves the elements in the range
[first, last) from other into *this. The elements are inserted before the element pointed to by pos. The behavior is undefined if pos is an iterator in the range [first,last).Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Параметры
| pos | — | Элемент, перед которым содержание будет вставлен
Оригинал: element before which the content will be inserted Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| other | — | другой контейнер, чтобы переместить содержимое
Оригинал: another container to move the content from Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| it | — | элемент, чтобы перейти от
other в *thisОригинал: the element to move from other to *thisТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
| first, last | — | диапазон элементов, чтобы перейти от
other в *thisОригинал: the range of elements to move from other to *thisТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Возвращаемое значение
(Нет)
Сложность
1-2)
Постоянное.
Оригинал:
Constant.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
3)
Постоянные если
this == &other, в противном случае линейного по std::distance(first, last).Оригинал:
Constant if
this == &other, otherwise linear in std::distance(first, last).Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Пример
Запустить этот код
#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 = { 1, 2, 3, 4, 5 };
std::list<int> list2 = { 10, 20, 30, 40, 50 };
auto it = list1.begin();
std::advance(it, 2);
list1.splice(it, list2);
std::cout << "list1: " << list1 << "\n";
std::cout << "list2: " << list2 << "\n";
list2.splice(list2.begin(), list1, it, list1.end());
std::cout << "list1: " << list1 << "\n";
std::cout << "list2: " << list2 << "\n";
}
Вывод:
list1: 1 2 10 20 30 40 50 3 4 5
list2:
list1: 1 2 10 20 30 40 50
list2: 3 4 5
См. также
| сливает два отсортированных списка (public функция-элемент) | |
| удаляет элементы, соответствующие определённым критериям (public функция-элемент) |