"指向最后一个元素的指针"的更漂亮的语法,std :: vector?

bob*_*obo 14 c++ stl vector stdvector

我想知道是否有更漂亮的语法来获得C++向量中最后一个元素的普通指针(不是迭代器)

std::vector<int> vec;

int* ptrToLastOne = &(*(vec.end() - 1)) ;

// the other way I could see was
int* ptrToLastOne2 = &vec[ vec.size()-1 ] ;
Run Code Online (Sandbox Code Playgroud)

但这些都不是很好看!

Mik*_*our 37

int* ptrToLastOne = &vec.back(); // precondition: !vec.empty()
Run Code Online (Sandbox Code Playgroud)


Căt*_*tiș 6

int* ptrToLast = &(vec.back()); // Assuming the vector is not empty.
Run Code Online (Sandbox Code Playgroud)


Vik*_*ehr 5

其他一些选择:

int* ptrToLast = &*vec.rbegin();
Run Code Online (Sandbox Code Playgroud)

要么

int* ptrToLast = &*boost::prev(vec.end());
Run Code Online (Sandbox Code Playgroud)