std::swap
ÐпÑеделено в заголовоÑном Ñайле <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) std::is_nothrow_move_constructible<T>::value &&
std::is_nothrow_move_assignable<T>::value
[пÑавиÑÑ] СложноÑÑÑ
1) ÐонÑÑанÑнаÑ.
2) ÐÐ¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð¾Ñ N
[пÑавиÑÑ] СпеÑиализаÑии
ÐопÑÑкаÑÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкие ÑпеÑиализаÑии и пеÑегÑÑзки алгоÑиÑма std::swap, но пеÑегÑÑзки, как пÑавило, пÑедпоÑÑиÑелÑнее, Ñак как ÑпеÑиализаÑии Ñаблона ÑÑнкÑии не ÑазÑеÑÐµÐ½Ñ Ð´Ð»Ñ Ñаблонов клаÑÑов. ÐиблиоÑека ÑÑнкÑий вÑегда иÑполÑзÑÐµÑ Ð¿ÑедоÑÑавленнÑе полÑзоваÑелем пеÑегÑÑзки пÑи обмене, еÑли они наÑ
одÑÑÑÑ Ð¿Ñи аÑгÑменÑно-завиÑимом поиÑке (в ÑооÑвеÑÑÑвии Ñ ÐºÐ¾Ð½ÑепÑией Swappable
).
СледÑÑÑие пеÑегÑÑзки Ñже пÑедÑÑмоÑÑÐµÐ½Ñ Ð² ÑÑандаÑÑной библиоÑеке:
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) |
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) |
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) |
(C++11) |
СпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) |
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) |
(C++11) |
задаÑÑÑÑ Ð°Ð»Ð³Ð¾ÑиÑмом std::swap (Ñаблон ÑÑнкÑии) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) | |
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) | |
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма 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 (Ñаблон ÑÑнкÑии) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма std::swap (Ñаблон ÑÑнкÑии) | |
(C++11) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма 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. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. (Ñаблон ÑÑнкÑии) | |
({{{1}}}) |
ÑпеÑиализаÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑма 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. ÐÑ Ð¼Ð¾Ð¶ÐµÑе пÑовеÑиÑÑ Ð¸ иÑпÑавиÑÑ Ð¿ÐµÑевод. ÐÐ»Ñ Ð¸Ð½ÑÑÑÑкÑий ÑÑлкниÑе ÑÑда. (Ñаблон ÑÑнкÑии) |
[пÑавиÑÑ] ÐÑимеÑ
vector <int> x;
x.push_back(228);
x.push_back(1337);
swap(x[0], x[1]);
cout<<x[0]<<' '<<x[1];
vector <int> x;
x.push_back(228);
x.push_back(1337);
int F;
F=x[0];
x[0]=x[1];
x[1]=F;
cout<<x[0]<<' '<<x[1];
[пÑавиÑÑ] См. Ñакже
менÑÐµÑ Ð¼ÐµÑÑами ÑлеменÑÑ, на коÑоÑÑе ÑказÑваÑÑ Ð´Ð²Ð° иÑеÑаÑоÑа (Ñаблон ÑÑнкÑии) | |
менÑÐµÑ Ð¼ÐµÑÑами два диапазона ÑлеменÑов (Ñаблон ÑÑнкÑии) |