Mi stavo chiedendo, perché qualcuno dovrebbe scrivere questo:Qual è il punto di iter_swap?
std::iter_swap(i, k);
invece di questo?
std::swap(*i, *k); // saved a few keystrokes!
Poi ho guardato dentro l'attuazione di iter_swap
, e, naturalmente, utilizza solo swap
invece di std::swap
visto che siamo già in namespace std
, in ogni caso. Questo mi porta alla prossima domanda:
Perché qualcuno dovrebbe scrivere questo:
using std::swap;
swap(a, b);
invece di questo?
std::iter_swap(&a, &b); // saved an entire line of code!
Ci sono differenze/problemi importanti che sto trascurando qui?
Il codice di salvataggio può essere utile (una riduzione della complessità è più semplice da ragionare) ... ma il salvataggio di * linee * di codice? Assolutamente inutile, spesso controproducente. –
No no no, è necessario eseguire 'using std :: iter_swap; iter_swap (i, k); 'perché' iter_swap' potrebbe essere specializzato. (Sto scherzando, credo.) – Potatoswatter
Hai esaminato * un'implementazione * di 'iter_swap', ma perché ritieni che non possa essere implementata con' std :: swap'? –