C++STL中vector容器 begin()与end()、front()与back()、find()函数的用法
C++STL中vector容器 begin()与end()、front()与back()、find()函数的用法
·
一、begin函数
函数原型:
iterator begin();
const_iterator begin();
功能:返回一个当前vector容器中起始元素的迭代器。
二、end函数
函数原型:
iterator end();
const_iterator end();
功能:返回一个当前vector容器中末尾元素的迭代器。
三、front函数
函数原型:
reference front();
const_reference front();
功能:返回当前vector容器中起始元素的引用。
四、back函数
函数原型:
reference back();
const_reference back();
功能:返回当前vector容器中末尾元素的引用。
说了这么多,实例才是最能说明问题的,相信聪明的你一定可以理解的:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<char> v1;
vector<char>::iterator iter1;
vector<char>::iterator iter2;
v1.push_back('m');
v1.push_back('n');
v1.push_back('o');
v1.push_back('p');
cout << "v1.front() = " << v1.front() << endl;
cout << "v1.back() = " << v1.back() << endl;
iter1 = v1.begin();
cout << *iter1 << endl;
iter2 = v1.end()-1; //注意v1.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素的正确操作为:v1.end() - 1
cout << *iter2 << endl;
return 0;
}
输出结果:
v1.front() = m
v1.back() = p
m
p
五、find函数
不同于map(map有find方法),vector本身是没有find这一方法,其find是依靠algorithm来实现的。
例如,在vector容器中查找6的数字。
#include <iostream>
#include <algorithm> //find函数的调用需要包含algorithm这一头文件
#include <vector>
int main()
{
using namespace std;
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
vec.push_back(6);
vector<int>::iterator it = find(vec.begin(), vec.end(), 6);
if (it != vec.end())
{
cout<<*it<<endl;
}
else
{
cout<<"can not find"<<endl;
}
return 0;
}
更多推荐
已为社区贡献2条内容
所有评论(0)