この質問はSO:で死ぬまで行われました。これは、文字列を反転してから単語を反転する従来のアルゴリズムのSTL関数を使用した私のバージョンです。ループを使用しない、よりエレガントなソルンはありますか?
std::string something;
std::getline(std::cin, something);
std::reverse(something.begin(), something.end());
for (size_t i = 0, size_t nextPos = something.find_first_of(' ', i);
nextPos != std::string::npos; i = nextPos + 1,
nextPos = something.find_first_of(' ', i)) {
std::string::iterator startIter = something.begin() + i;
std::string::iterator endIter = something.begin() + nextPos;
std::reverse(startIter, endIter);
}
入力が完全であり、文の前後にスペースがなく、単語間にちょうど1つのスペースがあると仮定します。ループを必要としないstlソリューションはありますか?
最高の、サブラマニア人