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

std::swap

Материал из cppreference.com
< cpp‎ | algorithm

 
 
Алгоритмы
Функции
Немодифицирующие линейные операции
Модифицирующие линейные операции
Разделение
Сортировка (на отсортированных промежутках)
Бинарный поиск (на отсортированных промежутках)
Множества (на отсортированных промежутках)
Куча
Минимум/максимум
Числовые операции
Библиотека C
 
Определено в заголовочном файле <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)
Обмен данными значениями.
Оригинал:
Exchanges the given values.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
1)
Меняет местами значения a и b.
Оригинал:
Swaps the values a and b.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
2)
Обмены массивов a и b. В действительности вызывает std::swap_ranges(a, a+N, b).
Оригинал:
Swaps the arrays a and b. In effect calls 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)
noexcept(noexcept(

    std::is_nothrow_move_constructible<T>::value &&
    std::is_nothrow_move_assignable<T>::value

))
2)
noexcept-спецификация:  (начиная с C++11)
noexcept(noexcept(swap(*a, *b)))

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

1)
Constant
Оригинал:
Constant
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
2)
Линейный в Н
Оригинал:
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.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
специализированный для строк std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализированный std::swap алгоритм
(шаблон функции) [edit]
Специализируется 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.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap алгоритм
Оригинал:
specializes the std::swap algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
Специализируется std::swap() алгоритм
Оригинал:
specializes the std::swap() algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции)
Специализируется std::swap() алгоритм
Оригинал:
specializes the std::swap() algorithm
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции)
специализация алгоритма std::swap
(шаблон функции) [edit]
Специализируется 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.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции)

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

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

свопы элементов указал на двух итераторов
Оригинал:
swaps the elements pointed to by two iterators
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]
свопы двух диапазонах элементы
Оригинал:
swaps two ranges of elements
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]