我試圖用這樣的迭代器向後打印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