提取vector容器中的值
begin() 返回第一个元素的迭代器 (iterator)end() 返回最末元素的迭代器 (iterator) (译注:实指向最末元素的下一个位置)注:这两个就相当于指针,可以把他们返回的值赋给一个声明的 it...
begin() 返回第一个元素的迭代器 (iterator)
end() 返回最末元素的迭代器 (iterator) (译注:实指向最末元素的下一个位置)
注:这两个就相当于指针,可以把他们返回的值赋给一个声明的 iterator (迭代器),这个迭代器可以 ++ – 的操作,还可以直接加一个数字
例1:
std::vector a(10);
std::vector::iterator it;
int i = 0;
for (it = a.begin(); it != a.end(); it++)
{
*it = i;
i++;
}
cout<<*(a.begin()+4)<<endl; // 输出的为:4
cout<<*(a.end()-2)<<endl; // 输出的为:8
注:a 中的值从第0为到第10维分别是: 0,1,2,3,4,5,6,7,8,9;
rbegin() 返回Vector尾部的逆迭代器 (reverse_iterator)
rend() 返回Vector起始的逆迭代器 (reverse_iterator) (译注:实指向第一个元素的前一个位置) ,rend()-1指向的是第一个元素
注:这两个就相当于指针,可以把他们返回的值赋给一个声明的 reverse_iterator(逆迭代器),这个迭代器可以 ++ – 的操作,还可以直接加一个数字,但如果当前指向的是第7维,如果加2就指向的是第5维,如果++就是第6维,如果减2就是第9维
例2:
std::vector a(10);
std::vector::reverse_iterator it;
int i = 0;
for (it = a.rbegin(); it != a.rend(); it++)
{
*it = i;
i++;
}
cout<<*(a.rend()-1)<<endl; // 输出的为:9
cout<<*(a.rbegin()+4)<<endl; // 输出的为:4
注:a 中的值从第0为到第10维分别是: 9,8,7,6,5,4,3,2,1,0;
front() 返回第一个元素 (相当于 *begin() )
at() 返回指定位置的元素 (参数添几相当于提取第几维的元素的值,而不是指针)
back() 返回最末一个元素 (相当于 *(end()-1) )
注:这三个函数取得的都是值而不是指针
例3:
std::vector a(10);
for (int i = 0; i<a.size(); i++)
{
a.at(i) = i; // 相当于a[i] = i;
}
cout<<a.front()<<endl; // 输出的为:0
cout<<a.back()<<endl; // 输出的为:9
注:a 中的值从第0为到第10维分别是: 0,1,2,3,4,5,6,7,8,9;
作者:qingqinglanghua
来源:CSDN
原文:https://blog.csdn.net/qingqinglanghua/article/details/5025919
版权声明:本文为博主原创文章,转载请附上博文链接!
更多推荐
所有评论(0)