string没有名为'reverse'的成员

时间:2017-10-11 13:53:58

标签: c++

我正在尝试反转一个字符串(c ++,用g ++编译)。 字符串不被视为算法函数的容器吗?

这是代码:

#include <string>
#include <algorithm> 


using namespace std;


int main()
{
    string str = "hello";
    str.reverse(str.begin(), str.rbegin());

    return 0;
}

由于

2 个答案:

答案 0 :(得分:1)

std::string类模板没有名为reverse的成员函数。 <algorithm>标题中有std::reverse个函数。您可能希望以下列方式使用它:

#include <string>
#include <algorithm> 
int main() {
    std::string str = "hello";
    std::reverse(str.begin(), str.end());
}

请注意使用str.end()代替str.rbegin()。您还可以定义一个新字符串,并使用接受反向迭代器的字符串构造函数重载:

#include <string>
int main() {
    std::string str = "hello";
    std::string reversestr(str.rbegin(), str.rend());
}

答案 1 :(得分:0)

std::string没有方法reverse。但std::reverse存在:

#include <string>
#include <algorithm>
#include <iostream>

int main()
{
    std::string str = "hello";
    std::reverse(str.begin(), str.end());
    std::cout << str << "\n"; // prints "olleh"
}