#include<iostream>
using namespace std;
#include<vector>
#include<stdio.h>
int main()
{
cout << "v:" << endl;
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
cout <<"v的capacity:"<< v.capacity() << endl;
cout << "v的size:" << v.size() << endl;
//vector<int>::reverse_iterator tail = v.rbegin()+1; //逆向迭代器:vector<int>::reverse_iterator
//cout << *tail << endl; //v.rbegin()+1:是以后边为头加回去,而不是以后边为尾减回去
//意思是输出倒数第二个元素:3
for (auto it = v.begin(); it != v.end(); it++)
{
cout << (*it) << endl;
}
cout << "v1:" << endl;
vector<int> v1; //简单理解v.begin()与v.rbegin()的区别:一个将vector数组的前面当作头,一个将vector数组的后面当作头。
//于是。如果头指针要访问后面的元素,当然是++。而不是--。
//同理:v.end()与v.rend()的区别:一个将vector数组的后面当作尾,一个将vector数组的前面当作尾。
v1.assign(v.rbegin(), v.rend()); //将v中的元素逆序放入v1。将后边当作头,前边当做尾,然后放入。
cout << "v1的capacity:" << v1.capacity() << endl;
cout << "v1的size:" << v1.size() << endl;
for (auto it = v1.begin(); it != v1.end(); it ++)
{
cout << (*it) << endl;
}
vector<int>::reverse_iterator head = v1.rend()-1; //vector数组的前面当作尾。要访问后面的,需要--
cout << *head << endl; //4 3 2 1 则v1.rend()-1;指向4
system("pause");
}
vector逆向迭代器
最新推荐文章于 2023-10-29 16:33:29 发布