cout << partition << '+'; у тя в последнем разе выдает попробуй просто разделить цикл на первый раз где значеие + "+" а остальные "+" + значение
for (int i = 0; i < partition.size(); i++) {
cout << partition << '+';
}
Сделать например проверку.
// Если i не равно последнему элементу в цикле for то выводить
//в консоль со знаком + иначе без него
if (i!=partition.size()-1)
{
cout << partition << '+';
}
else
{
cout << partition;
}
void printPartition(vector& partition) {
stringstream ss;
for (int i = 0; i < partition.size(); ++i) {
ss n;
vector currentPartition;
generatePartitions(n, n, currentPartition);
}