STL vector中的rbegin方法(5)
来源:互联网 发布:微商城软件下载 编辑:程序博客网 时间:2024/06/06 17:49
std::vector::rbegin
- C++98
- C++11
reverse_iterator rbegin() noexcept;const_reverse_iterator rbegin() const noexcept;
#include <vector>
#include <iterator>
using namespace std;
int main()
{
vector<int> vi;
vi.push_back(5);
vi.push_back(999);
cout<<*vi.rbegin()<<endl;
}
Returns a reverse iterator pointing to the last element in the vector (i.e., its reverse beginning).
返回一个指向最后一个元素的反向迭代器 (相当于从后往前看)
Reverse iterators iterate backwards: increasing them moves them towards the beginning of the container.
反向迭代器的向后迭代:当增加该反向迭代器的时候其实该迭代器是向容器的开头位置移动。
例如:
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
int main()
{
vector<int> vi;
vi.push_back(5);
vi.push_back(999);
vi.push_back(222);
vector<int>::reverse_iterator vr=vi.rbegin();
cout<<*vr<<endl;
vr++;
cout<<*vr<<endl;
}
结果:
可以看到,vr++之后,vr的位置其实是向前移动了!
rbegin points to the element right before the one that would be pointed to by member end.
rbegin指向的元素位置刚好就是end()所指向的前一个。
需要注意的是,不同于back(),back()返回的是一个引用,这个方法返回的是一个反向的随机访问迭代器。
Parameters
noneReturn 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
123456789101112131415161718192021
// vector::rbegin/rend#include <iostream>#include <vector>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;}
Output:
myvector contains: 5 4 3 2 1
Complexity
Constant.Iterator validity
No changes.该方法不会对其他迭代器的有效性造成影响。
Data races
The container is accessed (neither the const nor the non-const versions modify the container).
这个方法不会修改容器内的内容。
该方法不会访问容器李的元素,但是返回的这个iterator可以用来访问以及修改元素,并且都是安全的。
Exception safety
No-throw guarantee: this member function never throws exceptions.
该方法不会抛出异常。
The copy construction or assignment of the returned iterator is also guaranteed to never throw.
利用复制构造器或者是赋值运算符得到的该iterator也不会抛出异常。
//不足之处请多多指导,转载请注明出处:点击打开链接
个人博客主页:点击打开链接
2014-8-9
于GDUT
- STL vector中的rbegin方法(5)
- STL array的rbegin方法(16)
- Sample of STL(Vector):begin and rbegin
- STL vector中的cbegin()方法(6)
- STL vector中的crbegin方法(7)
- STL vector中的rend方法(10)
- STL vector中的crend()方法(11)
- STL vector中的reserve()方法(15)
- STL vector中的push_back方法(17)
- STL vector中的clear方法(18)
- STL vector中的at方法(20)
- STL vector中的pop_back方法(22)
- STL vector中的emplace_back方法(24)
- STL vector中的erase方法(26)
- STL vector中的swap方法(33)
- STL vector中的insert方法
- STL 反向迭代器(rbegin,rend)
- STL vector中的capacity()方法(14)
- Tair LDB基于Prefixkey的范围查找
- java内存解析
- SecureCRT中使用上传下载文件工具rz和sz
- 风水如何提升领导运 沙发最宜紧靠客厅主位
- Android手机短信与通讯录存储位置
- STL vector中的rbegin方法(5)
- memcached refcount
- UVa-10106-Product
- RHEL6 install Chrome
- JavaScript的求模、取整、小数的取舍
- YUV格式详解
- hdu 4927 java程序
- The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
- C++Vector用法