微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用迭代器反转字符串

如何解决使用迭代器反转字符串

我正在尝试使用迭代器反转字符串(例如,将“bro”更改为“orb”)。不幸的是,我的代码不起作用。这是我的代码


for(std::string text; std::cin >> text;){
    for(std::string::const_iterator it = text.cend() + 1; it <= text.cbegin(); --it)
        std::cout << *it;
}


return 0;}

我哪里做错了?

解决方法

首先,您的代码不是反转字符串,而是向后打印字符串。完全不一样。

向后打印字符串的简单方法是使用反向迭代器

for (auto it = text.rbegin(); it != text.rend(); ++it)
    std::cout << *it;

但是如果你想用一个普通的迭代器来做,那么下面的工作

auto it = text.end();
while (it > text.begin())
     std::cout << *--it;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。