从后面访问矢量

时间:2010-06-16 21:12:09

标签: c++ vector

有没有办法从后面开始访问矢量上的元素?我想访问第二个最后一个元素。目前我正在使用以下内容来实现:

myVector[myVector.size() - 2]

但这似乎很慢而且笨重,有更好的方法吗?

3 个答案:

答案 0 :(得分:7)

不太可能更快,但这可能看起来更好:

myVector.end()[-2]

答案 1 :(得分:5)

嗯,你总是可以使用vector :: back()。如果要从后面进行迭代,请使用reverse_iterator:

vector<something>::reverse_iterator iter = v.rbegin();
iter++; //Iterates backwards

矢量是为快速随机访问而制作的,所以你的方式也很好。在任何索引处访问向量元素都是O(1)操作。

答案 2 :(得分:0)

您的方式完全有效且非常快,但您应该检查myVector.size() > 1