std::iter_swap
Da 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. |
Definido no cabeçalho <algorithm>
|
||
template< class ForwardIt1, class ForwardIt2 > void iter_swap( ForwardIt1 a, ForwardIt2 b ); |
||
Troca os valores dos elementos os iteradores dados estão apontando para.
Original:
Swaps the values of the elements the given iterators are pointing to.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Índice |
[editar] Parâmetros
a, b | - | iteradores para os elementos para trocar
Original: iterators to the elements to swap The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Type requirements | ||
-ForwardIt1, ForwardIt2 must meet the requirements of ForwardIterator .
| ||
-*a, *b must meet the requirements of Swappable .
|
[editar] Valor de retorno
(Nenhum)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Complexidade
constante
Original:
constant
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Possível implementação
template<class ForwardIt1, class ForwardIt2> void iter_swap(ForwardIt1 a, ForwardIt2 b) { using std::swap; swap(*a, *b); } |
[editar] Exemplo
O seguinte é uma implementação do tipo de seleção em C + +
Original:
The following is an implementation of selection sort in C++
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <random> #include <vector> #include <iostream> #include <algorithm> #include <functional> #include <iterator> template<class ForwardIt> void selection_sort(ForwardIt begin, ForwardIt end) { for (ForwardIt i = begin; i != end; ++i) std::iter_swap(i, std::min_element(i, end)); } int main() { std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dist(-10, 10); std::vector<int> v; generate_n(back_inserter(v), 20, bind(dist, gen)); std::cout << "Before sort: "; copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); selection_sort(v.begin(), v.end()); std::cout << "\nAfter sort: "; copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); std::cout << '\n'; }
Saída:
Before sort: -7 6 2 4 -1 6 -9 -1 2 -5 10 -9 -5 -3 -5 -3 6 6 1 8 After sort: -9 -9 -7 -5 -5 -5 -3 -3 -1 -1 1 2 2 4 6 6 6 6 8 10
[editar] Veja também
troca os valores dos dois objetos Original: swaps the values of two objects The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (modelo de função) | |
troca dois intervalos de elementos Original: swaps two ranges of elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (modelo de função) |