このことを考慮 -
#include <iostream>
#include <algorithm>
#include <functional>
#include <iterator>
#include <list>
int main()
{
typedef std::list<int> L;
L l(5);
typedef L::const_iterator CI;
typedef L::iterator I;
CI cb = l.begin(), ce = l.end();
I b = l.begin();
std::transform(cb, --ce, ++b, std::bind2nd(std::plus<CI::value_type>(), 1));
std::copy(l.begin(), l.end(), std::ostream_iterator<CI::value_type>(std::cout\
));
std::cout<<std::endl;
return 0;
}
私によると、変換はリストの最初から「最後から2番目」の要素まで反復し、各要素に1を追加し、「2番目」から「最後」の要素に上書きするため、その出力は01111になるはずです。
しかし、驚いたことに、出力は 01234 です
何が欠けていますか?cppreference の transform のドキュメントを読みました