Tôi đã tự hỏi, tại sao mọi người lại viết điều này:Điểm của iter_swap là gì?
std::iter_swap(i, k);
thay vì điều này?
std::swap(*i, *k); // saved a few keystrokes!
Sau đó, tôi nhìn vào việc thực hiện các iter_swap
, và tất nhiên nó chỉ sử dụng swap
thay vì std::swap
vì chúng tôi đã có trong namespace std
, anyway. Điều đó dẫn tôi đến câu hỏi tiếp theo:
Tại sao ai sẽ viết này:
using std::swap;
swap(a, b);
thay vì điều này?
std::iter_swap(&a, &b); // saved an entire line of code!
Có bất kỳ sự khác biệt/vấn đề quan trọng nào tôi nhìn thấy ở đây không?
Mã tiết kiệm có thể đáng giá (giảm độ phức tạp dễ dàng hơn để giải thích) ... nhưng tiết kiệm * dòng * mã? Hoàn toàn vô dụng, thường phản tác dụng. –
Không không không, bạn cần phải làm 'bằng cách sử dụng std :: iter_swap; iter_swap (i, k); 'vì' iter_swap' có thể đã được chuyên biệt hóa. (Chỉ đùa thôi.) Tôi nghĩ.) – Potatoswatter
Bạn đã xem xét * một * thực hiện 'iter_swap', nhưng tại sao bạn cho rằng nó không thể được thực hiện với' std :: swap'? –