reverse函数定义在中,并非String成员函数;它接收双向迭代器区间[left, right)原地反转元素,需#include ,正确调用为std::reverse(s.begin(), s.end())。

reverse 函数在 里,不是 string 成员函数
很多人以为 std::string 有自带的 reverse() 成员函数,其实没有。c++ 标准库提供的 reverse 是一个泛型算法,定义在 头文件中,作用于任意支持双向迭代器的容器(包括 std::string、std::vector 等)。
它不修改容器大小,只交换元素位置,时间复杂度 O(n),原地操作。
- 必须包含
#include ,否则编译报错:‘reverse’ was not declared in this scope
- 调用时传入两个迭代器:起始位置和「末尾的下一个位置」,即
begin() 和 end()
-
std::string 的 end() 指向 NULL 字符之后,reverse 会把它一并翻转 —— 但不影响字符串逻辑长度,因为 size() 和 c_str() 仍以第一个