C++ STL中vector与迭代器用法及front()/back(),begin()/end()区别

front()/back() 返回vector头尾内的值
begin()/end() 返回指向vector头尾的迭代器, 注意end()返回的是最后一位的下一个

迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。
每种容器都定义了自己的迭代器类型,如vector:

vector<int>::iterator    iter;    //定义一个名为iter的变量

每种容器都定义了一对名为begin和end的函数,用于返回迭代器。下面对迭代器进行初始化操作:

vector<int>    ivec;
vector<int>::iterator    iter1=ivec.begin();    //将迭代器iter1初始化为指向ivec容器的第一个元素
vector<int>::iterator    iter2=ivec.end();    //将迭代器iter2初始化为指向ivec容器的最后一个元素的下一个位置

注意end并不指向容器的任何元素,而是指向容器的最后元素的下一位置,称为超出末端迭代器。如果vector为空,则begin返回的迭代器和end返回的迭代器相同。一旦向上面这样定义和初始化,就相当于把该迭代器和容器进行了某种关联,就像把一个指针初始化为指向某一空间地址一样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。