std::iter_swap
Da cppreference.com.
![]() | Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Defined in header <algorithm> | ||
template<class ForwardIt1, class ForwardIt2 > void iter_swap( ForwardIt1 a, ForwardIt2 b ); | ||
Scambia i valori degli elementi indicati sono gli iteratori che punta a.
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.
Indice |
[modifica]Parametri
a, b | - | iteratori agli elementi da scambiare 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 . |
[modifica]Valore di ritorno
(Nessuno)
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.
[modifica]Complessità
costante
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.
[modifica]Possibile implementazione
template<class ForwardIt1, class ForwardIt2>void iter_swap(ForwardIt1 a, ForwardIt2 b){usingstd::swap; swap(*a, *b);} |
[modifica]Esempio
Il seguente è un implementazione di ordinamento per selezione in 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';}
Output:
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
[modifica]Vedi anche
scambia i valori di due oggetti 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. (funzione di modello) | |
Scambia due gamme di elementi 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. (funzione di modello) |