std::swap
Материал из cppreference.com
Определено в заголовочном файле <algorithm>
Определено в заголовочном файле <utility> |
(до C++11) (начиная с C++11) |
|
template< class T > void swap( T& a, T& b ); |
(1) | |
template< class T2, size_t N > void swap( T2 (&a)[N], T2 (&b)[N]); |
(2) | (начиная с C++11) |
Обмен переданных значений.
1) Меняет местами значения a
и b
.
2) Обмен массивов a
и b
. В действительности вызывает std::swap_ranges(a, a + N, b).
Содержание |
[править] Параметры
a, b | - | значения, которые нужно поменять местами |
Требования к типам | ||
-T должен соответствовать требованиям MoveAssignable и MoveConstructible .
| ||
-T2 должен соответствовать требованиям Swappable .
|
[править] Возвращаемое значение
(Нет)
[править] Исключения
1)спецификация noexcept:
2) noexcept(noexcept(
std::is_nothrow_move_constructible<T>::value &&
std::is_nothrow_move_assignable<T>::value
спецификация noexcept:
noexcept(noexcept(swap(*a, *b)))
[править] Сложность
1) Константная.
2) Линейная от N
[править] Специализации
Допускаются пользовательские специализации и перегрузки алгоритма std::swap, но перегрузки, как правило, предпочтительнее, так как специализации шаблона функции не разрешены для шаблонов классов. Библиотека функций всегда использует предоставленные пользователем перегрузки при обмене, если они находятся при аргументно-зависимом поиске (в соответствии с концепцией Swappable
).
Следующие перегрузки уже предусмотрены в стандартной библиотеке:
(C++11) |
Специализация алгоритма std::swap (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
(C++11) |
Специализация алгоритма std::swap (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
(C++11) |
задаётся алгоритмом std::swap (шаблон функции) |
специализированный для строк std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
Специализированный std::swap алгоритм (шаблон функции) | |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
(C++11) |
специализация алгоритма std::swap (шаблон функции) |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) |
[править] Пример
Этот раздел не завершён Причина: нет примера |
[править] См. также
обмен элементов, на которые указывают итераторы (шаблон функции) | |
обмен элементов в двух диапазонах (шаблон функции) |