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)
int* ptrToLast = &(vec.back()); // Assuming the vector is not empty.
Run Code Online (Sandbox Code Playgroud)
其他一些选择:
int* ptrToLast = &*vec.rbegin();
Run Code Online (Sandbox Code Playgroud)
要么
int* ptrToLast = &*boost::prev(vec.end());
Run Code Online (Sandbox Code Playgroud)