Ответ 1
Вместо уменьшения rbegin
вы должны увеличить его, как показано ниже: 1
double penultimate = *++foo.rbegin();
как rbegin()
возвращает обратный итератор, поэтому ++
- это оператор, который перемещается назад в контейнере. Заметьте, что я также сбросил лишние круглые скобки: это не для всех.
В настоящее время поведение вашей программы составляет undefined, так как вы фактически переходите к end()
, и вам не разрешают разыгрывать это. Произвольный характер вывода является проявлением поведения undefined.
1 Сохраните минимальный размер, который у вас есть.