我试图用这样的迭代器向后打印std::string
:C++如何向后打印字符串?
std::string back = "hello";
for(std::string::iterator it=back.end(); it!=back.begin(); --it)
{
std::cout << (*it);
}
但产量将只打印出来:
olle
为什么不还打印出的H?我尝试了几个不同的东西,并玩弄它,但我似乎无法弄清楚为什么。任何帮助将不胜感激,谢谢! :)
的问题是back.end()'指向*字符串后面,而不是最后一个元素。你有没有试过http://en.cppreference.com/w/cpp/iterator/reverse_iterator? – pingul
为什么不使用'std :: reverse()'? –
'it> = back.begin()' – GreatAndPowerfulOz