std::vector::rbegin
- C++98
- C++11
-
reverse_iterator rbegin() noexcept; const_reverse_iterator rbegin() const noexcept;
Return reverse iterator to reverse beginning 返回一个反向的首元素. 例子: #include
#include
#include
using namespace std;
int main()
{
vectorvi;
vi.push_back(5);
vi.push_back(999);
cout<<*vi.rbegin()<
}
运行结果:
可以看到,vi里面元素排列顺序为{5,999},而运用rbegin()返回的迭代器指向的正是最后一个元素的位置,但这个位置和end()的位置是不同的,因为end()指向的是最后一个元素再后面的一个位置(超尾迭代器).
Returns a reverse iteratZ??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcjwvZW0+IHBvaW50aW5nIHRvIHRoZSBsYXN0IGVsZW1lbnQgaW4gdGhlIHZlY3RvciAoaS5lLiwgaXRzIDxlbT5yZXZlcnNlCiBiZWdpbm5pbmc8L2VtPikuPC9wPgo8cD63tbvY0ru49ta4z/LX7rrz0ru49tSqy9i1xLe0z/K1/LT6xvcgo6jP4LWx09q007rzzfnHsL+0o6k8L3A+Cjxicj4KCjxwPjxkZm4+UmV2ZXJzZSBpdGVyYXRvcnM8L2Rmbj4gaXRlcmF0ZSBiYWNrd2FyZHM6IGluY3JlYXNpbmcgdGhlbSBtb3ZlcyB0aGVtIHRvd2FyZHMgdGhlIGJlZ2lubmluZyBvZiB0aGUgY29udGFpbmVyLjwvcD4KPHA+t7TP8rX8tPrG97XEz/K687X8tPqjurWx1Pa807jDt7TP8rX8tPrG97XEyrG68sbkyrW4w7X8tPrG98rHz/LI3cb3tcS/qs23zrvWw9LGtq+hozwvcD4KPHA+wP3I56O6PC9wPgo8cD4jaW5jbHVkZSA8aW9zdHJlYW0+PGJyPgojaW5jbHVkZSA8dmVjdG9yPjxicj4KI2luY2x1ZGUgPGl0ZXJhdG9yPjxicj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDs8YnI+CmludCBtYWluKCk8YnI+Cns8YnI+CnZlY3RvcjxpbnQ+IHZpOzxicj4KdmkucHVzaF9iYWNrKDUpOzxicj4KdmkucHVzaF9iYWNrKDk5OSk7PGJyPgp2aS5wdXNoX2JhY2soMjIyKTs8YnI+CnZlY3RvcjxpbnQ+OjpyZXZlcnNlX2l0ZXJhdG9yIHZyPXZpLnJiZWdpbigpOzxicj4KY291dDw8KnZyPDxlbmRsOzxicj4KdnImIzQzOyYjNDM7Ozxicj4KY291dDw8KnZyPDxlbmRsOzxicj4KPGJyPgo8YnI+Cjxicj4KPGJyPgp9PGJyPgo8L3A+CjxwPr3hufujujwvcD4KPHA+PGltZyBzcmM9"https://www.cppentry.com/upload_files/article/49/1_cishl__.png" alt="\">
可以看到,vr++之后,vr的位置其实是向前移动了!
rbegin points to the element right before the one that would be pointed to by member end.
rbegin指向的元素位置刚好就是end()所指向的前一个。
Notice that unlike member vector::back, which returns a reference to this same element, this function returns a reverse random access iterator.
需要注意的是,不同于back(),back()返回的是一个引用,这个方法返回的是一个反向的随机访问迭代器。
Parameters
none
Return Value
返回值:
A reverse iterator to the reverse beginning of the sequence container.
返回一个反向迭代器指向顺序容器的反向的开头。
If the vector object is const-qualified, the function returns a const_reverse_iterator. Otherwise, it returns a reverse_iterator.
如果这个vector对象具有const属性,那么这个方法返回的iterator也将具有const属性,否则,返回一个普通的reverse_iterator.
Member types reverse_iterator and const_reverse_iterator are reverse random access iterator types (pointing to an element and to a const element, respectively). See vector member types.
reverse_iterator的是一个反向的随机访问迭代器。
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21// vector::rbegin/rend #include#include int main () { std::vector<int> myvector (5); // 5 default-constructed ints std::vector<int>::reverse_iterator rit = myvector.rbegin(); int i=0; for (rit = myvector.rbegin(); rit!= myvector.rend(); ++rit) *rit = ++i; std::cout << "myvector contains:"; for (std::vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it) std::cout << ' ' << *it; std::cout << '\n'; return 0; } Edit & Run
Output:
myvector contains: 5 4 3 2 1
Complexity
Constant.
Iterator validity
No changes.
该方法不会对其他迭代器的有效性造成影响。
Data races
The container is accessed (neither the const