C ++中循环的替代方法

Michael Höller 2 c++ string algorithm reverse loops

我想在不使用循环的情况下反转字符串。我的循环代码如下所示:

#include <iostream>
#include <string>

using namespace std;

string reverseString(string str) {
    string changedString;
    int strLength = int(str.length() - 1);
    for(int i {strLength}; i >= 0; i--) {
        changedString.push_back(str.at(i));
    }
    return changedString;
}

int main() {

    string str;

    cout << "Enter a string to reverse it:\n" << flush;
    cin >> str;
    cout << reverseString(str) << flush;
} 

现在,我需要编写一个没有循环的函数。仅应使用String方法。您能帮我解决这个问题吗?

Vlad from Mo.. 8

编写这样的功能非常简单

std::string reverse( const std::string &s )
{
    return { s.rbegin(), s.rend() };
}

这是一个示范节目

#include <iostream>
#include <string>

std::string reverse( const std::string &s )
{
    return { s.rbegin(), s.rend() };
}

int main() 
{
    std::string s( "Hello World" );

    std::cout << s << '\n';
    std::cout << reverse( s ) << '\n';

    return 0;
}

它的输出是

Hello World
dlroW olleH