在Python中,访问数组的[-1]第th个元素会给出最后一个元素,并[-2]为倒数第二个元素编制索引.
在C++中是否有类似的漂亮语法std::vector以相反的顺序访问元素?
Revese迭代器:
for (auto it = v.rbegin(); it != v.rend(); ++it)
{
}
Run Code Online (Sandbox Code Playgroud)
如果要从末尾访问第i个元素:
*(v.rbegin() + i)
Run Code Online (Sandbox Code Playgroud)
或者,如果你不想看起来像一个全知的人:
*(v.end() - i - 1)
Run Code Online (Sandbox Code Playgroud)
请注意,在Python中,您实际上将使用v[-i-1]相同的元素,因此这个元素使用相同的数字.
诀窍是矢量迭代器是RandomAccessIterator这样你可以添加和减去它们的索引.