reverse_iterator rbegin() noexcept; const_reverse_iterator rbegin() const noexcept;
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()所指向的前一个。
需要注意的是,不同于back(),back()返回的是一个引用,这个方法返回的是一个反向的随机访问迭代器。
返回值:
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.
reverse_iterator的是一个反向的随机访问迭代器。
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; }
myvector contains: 5 4 3 2 1
该方法不会对其他迭代器的有效性造成影响。
The container is accessed (neither the const