欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++STL的vector中front(),back(),begin(),end()的用法

程序员文章站 2022-03-23 09:19:36
...

一、front( ),back( )的使用

arr.front();返回的是第一个元素的引用。
arr.back();返回的的是最后一个元素的引用。

如果定义int c = a.back(),c并不是一个引用,操作b不会对a中的最后一个元素造成影响。
若定义int &b=a.front();,则对b的操作会影响a中第一个元素。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
	vector<int> a = { 1,2,3,4,5,6,7,8,9 };

	int &b = a.front();
	b = 100;
	cout << b << endl;			//b=100
	cout << a.front() << endl;	//a.front()=100

	int c = a.back();
	c = 50;
	cout << c << endl;			//c=50
	cout << a.back() << endl;	//a.back()=9

	system("pause");
	return 0;
}

二、begin( ),end( )的使用

从前向后遍历

vector<int>::iterator itr1 = arr.begin();
while (itr1 != arr.end())
{
	//do something
}

从后向前遍历

vector<int>::iterator itr2 = arr.end()-1;//arr.end()是指向末尾的指针,arr.end()-1才指向最后一个元素
int len2 = 0;
while (itr2 != arr.begin())
{
	//do something
}

三、reverse( )的使用

需要头文件#include<algorithm>

reverse(vec.begin(),vec.end());将元素翻转,即逆序排列。