Po pierwsze warto napisać pomocniczą funkcję, generującą stringa z 'n' powtarzających się znaków.
std::string repeat(const char c, size_t count) {
std::string result;
result.resize(count);
std::fill(result.begin(), result.end(), c);
return result;
}
Teraz kiedy można napisać przejrzysty kod zostaje taka drobnostka:
int main() {
for(auto x = 0u; x <= 20; ++x) {
std::cout << repeat(' ', x) << repeat('x', 20 - x) << std::endl;
}
return 0;
}
Oczywiście można tu spekulować czy mowa o zagnieżdżonych pętlach, więc jeśli zadanie ma taki wymóg to lepiej wykorzystać bardziej oczywiste rozwiązanie jak np. to od @vector.