C++STL中vector容器 begin()与end()函数、front()与back()的用法

一、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

时间: 2024-11-08 19:06:03

C++STL中vector容器 begin()与end()函数、front()与back()的用法的相关文章

STL中的容器

STL中的容器 一. 种类: 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.multiset.map和multimap. 非标准序列容器slist和rope.slist是一个单向链表,rope本质上是一个重型字符串 非标准关联容器hash_set.hash_multiset.hash_map和hash_multimap. 几种标准非STL容器,包括数组.bitset.valarray.stack.queue和priority_queue 值得

带你深入理解STL之Vector容器

C++内置了数组的类型,在使用数组的时候,必须指定数组的长度,一旦配置了就不能改变了,通常我们的做法是:尽量配置一个大的空间,以免不够用,这样做的缺点是比较浪费空间,预估空间不当会引起很多不便. STL实现了一个Vector容器,该容器就是来改善数组的缺点.vector是一个动态空间,随着元素的加入,它的内部机制会自行扩充以容纳新元素.因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助,再也不必因为害怕空间不足而一开始就配置一个大容量数组了,vector是用多少就分配多少. 要

STL中各容器之函数总结

一.序列和关联非共有函数 所有标准库共有函数  (构造,相关属性,迭代器,插入与删除,比较,swap) 其中operator>,operator>=,operator<,operator<=,operator==,operator!=均不适用于priority_queue 顺序容器和关联容器共有函数 (1)   序列容器都提供5种相同的构造方法:关联容器都提供3种相同的构造方法 (2)    还有insert插入函数(序列容器有3个相同版本的插入.关联容器也有3个版本的) (3) 

C++的STL中vector内存分配方法的简单探索

STL中vector什么时候会自动分配内存,又是怎么分配的呢? 环境:Linux  CentOS 5.2 1.代码 #include <vector> #include <stdio.h> using namespace std; int main() { vector<int> x_vec; printf("data size : [%3d], mem size : [%3d]\n", x_vec.size(), x_vec.capacity())

C++ STL中vector(向量容器)使用简单介绍

原文:http://www.seacha.com/article.php/knowledge/cbase/2013/0903/2205.html C++ vector(向量容器)是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组,或者作为动态内存. 在创建一个vector 后,它会自动在内存中分配一块连续的内存空间进行数据存储,初始的空间大小可以预先指定也可以由vector 默认指定,这个大小即cap

C++STL库中vector容器常用应用

#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector<int> vec; vec.push_back(1);//在尾部插入元素 vec.push_back(2); // cout<<vec[1];//按下标访问元素,从[0]开始 /* //使用迭代器访问元素 vector<int>::iterat

【C++】STL,vector容器操作

C++内置的数组支持容器的机制,但是它不支持容器抽象的语义.要解决此问题我们自己实现这样的类.在标准C++中,用容器向量(vector)实现.容器向量也是一个类模板.标准库vector类型使用需要的头文件:#include <vector>.vector 是一个类模板.不是一种数据类型,vector<int>是一种数据类型.Vector的存储空间是连续的,list不是连续存储的. 一. 定义和初始化vector< typeName > v1;       //默认v1为

STL中vector的初始化

vector可用于代替C++中的数组,一般一致认为应该多用vector,因为它的效率更高,而且具备很好的异常安全性.而且vector是STL推荐使用的默认容器,STL中向量是使用数组实现的,因此向量具有顺序表的特点,可以快速随机存取数据.向量是一种数据类型的对象的集合,每个对象根据其位置有一个整数索引值与其对应,类似于数组. 使用向量之前,必须包含相应的头文件: #include<vector> using std::vector 同时也应当注意,vector是一个模板类,而非数据类型.所以在

【STL】关于STL中set容器的一些总结

原文链接 关于set,必须说明的是set关联式容器.set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序 1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构