标签: c++ pointers vector struct
我有一个按最低编号到最高编号排序的矢量。我知道最高数字包含在向量的最后一个元素中。我的班级有一个叫号码的成员。我想从向量的最后一个元素中获取我的类的数字。我想让它尽可能高效。现在我有一个迭代器,它只是遍历向量并设置maxNumber = it->number;这是完全冗余的,因为我已经排序并且最后有最大值。我曾尝试使用智能指针,但我对如何在没有迭代器的情况下进入数字感到困惑。
maxNumber = it->number;
基本上我想从向量的最后一个元素中取出myClass.number并将其设置为变量。
由于
答案 0 :(得分:1)
一种方法是使用[]运算符和向量的最后一个元素的索引,如下所示:
[]
maxNumber = vec[vec.size()-1].number;
因为您知道maxNumber位于向量vec的最后一个元素中。
maxNumber
vec
答案 1 :(得分:1)
您始终可以使用rbegin或back获取最后一个元素,如下所示:
rbegin
back
maxNumber = myVector.rbegin()->number; maxNumber = myVector.back().number;