は、この最小限の例を見てみましょう:std :: reverseはリバースイテレータで、なぜノーオペレーションではないのですか?
#include <iostream>
#include <string>
#include <algorithm>
int main()
{
std::string s{"abcde"};
std::reverse(s.rbegin(), s.rend());
std::cout << s;
}
我々はリバースイテレータの範囲を逆にしているので、私はそれが組合ならないことを期待しています。しかし、それはedcba
を印刷します。リバースイテレータやstd::reverse
について私が理解できないことはありますか?
[ "STDを適用するかのように最初、最後) 振る舞う::最初のイテレータのすべてのペアにiter_swap + I、(最後-I)の範囲内の要素の順序を逆に - 各非ための1負の数値を否定することは期待できますか?(負のi <(ラストファースト)/ 2 ")(http://en.cppreference.com/w/cpp/algorithm/reverse) –
あなたはまた、帰りの旅でUターンをノーオペにすることを期待していますか?そうでない場合は、どうしてですか? –
誰かがUターンを2回期待しているかもしれません。または、より正確には、後方に座ってUターンを行う;) –