有没有办法从后面开始访问矢量上的元素?我想访问第二个最后一个元素.目前我正在使用以下内容来实现:
myVector[myVector.size() - 2]
Run Code Online (Sandbox Code Playgroud)
但这似乎缓慢而笨重,有更好的方法吗?
不太可能更快,但这可能看起来更好:
myVector.end()[-2]
Run Code Online (Sandbox Code Playgroud)
那么你总是可以使用vector :: back().如果要从后面进行迭代,请使用reverse_iterator:
vector<something>::reverse_iterator iter = v.rbegin();
iter++; //Iterates backwards
Run Code Online (Sandbox Code Playgroud)
向量是为快速随机访问而制作的,所以你的方式也很好.在任何索引处访问向量元素是O(1)操作.