获取插入到矢量中的对象的索引

dan*_*jar 14 c++ stl vector std

如何获得实际插入对象的位置?

#include <vector>
using namespace std;

vector<SomeClass> list;
SomeClass object;
list.push_back(object);

list[...].method(); // I do not have the key
Run Code Online (Sandbox Code Playgroud)

不幸的是push_back,它的返回类型不会返回任何内容void.

NPE*_*NPE 21

如果v是你的向量,下面将给你位置(即索引):

v.push_back(object);
size_t pos = v.size() - 1;
Run Code Online (Sandbox Code Playgroud)

或者你可以看一下size()之前的电话push_back().然后你不需要减去一个.


Dan*_*ien 7

您可以使用back()成员获取对最后一个元素的引用:

list.push_back(object);
list.back();
Run Code Online (Sandbox Code Playgroud)

或者,因为push_back()只是将对象添加到结尾,所以新插入元素的索引是向量大小减去1:

list.push_back(object);
vector<my_class>::size_type object_pos = list.size() - 1;
Run Code Online (Sandbox Code Playgroud)