怎样取到字符串的最后一个值(用迭代器)

str.back()
■网友
*std::prev(str.end())*(str.end() - 1)也是可以的,但是注意,*--str.end()能不能接受,标准表示不关我事,因为这不属于迭带器的需求(--操作要求右值)。str.back()也可以,只不过没有直接使用迭带器。
■网友
迭代器是有不同“自由度”的迭代器的……有的只能向后一步走 有的能够向前或向后一步 有的能想任意方向任意步移动 只通过迭代器操作要取指向最后一个元素的迭代器的话 第一种迭代器只能一直向后跑 跑到结尾 那么之前一步的迭代器就是所求迭代器 第二第三种就直接从end位置向前一步就行了而字符串的迭代器是第三种 所以直接*(str.end() - 1)就好了或者*(str.begin() + str.length() - 1)其实直接str.back()就好了……真的要迭代器并且优雅的话*(str.rbegin()) 这是反向迭代器嗯就是这样喵(?ò ? ó?)
■网友
c++ stl::string的rbegin()返回一个反向迭代器,指向字符串的最后一个字符,如果没特殊要求直接用rbegin()
■网友
1.让迭代器it指向str.end()-1末尾字符的地址。2.str,i是你想用的第几个元素。末尾i=str.size()-1。3.直接*(str.end()-1)。


    推荐阅读