for(int i=0; i<slowo.length(); i++)
{
ile.push_back(mapa[slowo[i]]);
}
problem w tym, że iterujesz po literach słowa, które się powtarzają, a nie po elementach mapy tak jak 2 linijki wyżej.
Najprościej zrobić to tak:
for (auto para : mapa)
{
ile.push_back(para.second);
}
lub
for (auto it = mapa.begin(); it != mapa.end(); ++it)
{
ile.push_back(it->second);
}
map<char, int>::iterator it1;
od takich rzeczy jest słówko kluczowe auto:
for(auto it = mapa.begin();it!=mapa.end();++it)
PS: popracuj nad formatowaniem kodu