std::swap
Материал из cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Определено в заголовочном файле <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) Оригинал:
Exchanges the given values.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Меняет местами значения
2) a
и b
.Оригинал:
Swaps the values
a
and b
.Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Обмены массивов
a
и b
. В действительности вызывает std::swap_ranges(a, a+N, b).Оригинал:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Содержание |
[править] Параметры
a, b | - | Значения должны быть поменяны местами
Оригинал: the values to be swapped Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. |
Требования к типам | ||
-T должен соответствовать требованиям MoveAssignable and MoveConstructible .
| ||
-T2 должен соответствовать требованиям Swappable .
|
[править] Возвращаемое значение
(Нет)
Оригинал:
(none)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[править] Исключения
1)noexcept-спецификация: (начиная с C++11)
2)
noexcept(noexcept( std::is_nothrow_move_constructible<T>::value && |
||
[править] Сложность
1)Constant
2) Оригинал:
Constant
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Линейный в Н
Оригинал:
Linear in N
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
[править] Специализации
Оба пользовательских специализации и перегрузки std::swap алгоритма допускаются, но перегрузок, как правило, предпочтительнее, так как специализация шаблона функции не разрешены для шаблонов классов. Библиотека функций всегда используют предоставленные пользователем перегрузки при замене, если они находят аргументов зависит от поиска (в соответствии с концепцией
Swappable
).Оригинал:
Both custom specializations and overloads of the std::swap algorithm are allowed, but the overloads are generally preferred since specializations of a function template aren't allowed for template classes. Library functions always use the user-provided overloads when swapping, if they are found by argument-dependent lookup (as per
Swappable
concept).Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
После перегрузки уже предусмотрены в стандартной библиотеке
Оригинал:
The following overloads are already provided by the standard library:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
специализированный для строк 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 Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
Специализируется std::swap алгоритм Оригинал: specializes the std::swap algorithm Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
(C++11) |
специализация алгоритма std::swap (шаблон функции) |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
(C++11) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
Специализируется std::swap() алгоритмОригинал: specializes the std::swap() algorithmТекст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |
[править] Пример
Этот раздел не завершён Причина: нет примера |
[править] См. также
свопы элементов указал на двух итераторов Оригинал: swaps the elements pointed to by two iterators Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) | |
свопы двух диапазонах элементы Оригинал: swaps two ranges of elements Текст был переведён автоматически через Google Translate. Вы можете проверить и исправить перевод. Для инструкций кликните сюда. (шаблон функции) |