C++STL之vector容器

初学STL,以下内容且当自己积累用,日后再慢慢完善。

向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相似。

数组跟vector的区别在于:数组是静态分配空间,一旦分配了空间的大小,就不可以再改变了,例如,int a[6];而vector是动态分配内存,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量,vector容器的容量增长是按照容器现在容量的一倍进行增长。

至于迭代器,它类似一个指向vector中元素的指针。

------------------------------------------------------------------------

【front函数】

①函数原型:

reference front();

const_reference front();

②功能:

返回当前vector容器中起始元素的引用,即返回vector容器中的第一个元素。

------------------------------------------------------------------------

【back函数】

①函数原型:

reference back();

const_reference back();

②功能:

返回当前vector容器中末尾元素的引用,即返回vector容器中的最后一个元素。

------------------------------------------------------------------------

【begin函数】

①函数原型:

iterator begin();

const_iterator begin();

②功能:

返回一个当前vector容器中起始元素的迭代器。

------------------------------------------------------------------------

【end函数】

①函数原型:

iterator end();

const_iterator end();

②功能:

返回一个当前vector容器中末尾元素的迭代器。

------------------------------------------------------------------------

#include <iostream>
#include <vector>
using namespace std;
int main()
{
 vector<char> v;
 vector<char>::iterator iter1;      //迭代器1
 vector<char>::iterator iter2;      //迭代器2
 v.push_back(‘A‘);
 v.push_back(‘B‘);
 v.push_back(‘C‘);
 v.push_back(‘D‘);
 v.push_back(‘E‘);
 cout<<"v.front() = "<<v.front()<<endl;  //输出vector容器中的第一个元素
 cout<<"v.back() = "<<v.back()<<endl;    //输出vector容器中的最后一个元素

 iter1=v.begin();
 cout<<*iter1<<endl;

 iter2 = v.end()-1;                 //注意v.end()指向的是最后一个元素的下一个位置,所以访问最后一个元素
                                    //的正确操作为:v1.end() - 1
 cout << *iter2 << endl;
 return 0;
}

OUTPUT:

v.front() = A
v.back() = E
A
E

原文地址:https://www.cnblogs.com/kannyi/p/8497229.html

时间: 2024-08-12 10:42:48

C++STL之vector容器的相关文章

带你深入理解STL之Vector容器

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

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

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

STL之vector容器的实现框架

说明:本文仅供学习交流,转载请标明出处,欢迎转载. 实现vector容器的思路等同于实现一个动态数组,以下我们參照源代码的相关资料,给出一个vector容器的大致框架,仅仅有声明,没给出详细的实现. 代码的框架注意从下面几个方面给出: (1)空间分配属性,因为是对外封闭的,故为procted:        (2)共同拥有訪问的属性,可供外部用户訪问,定义为public:        (3)容器的构造函数与析构函数:        (4)vector容器的插入操作.        (5)vec

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容器中起

C++ STL vector容器学习

STL(Standard Template Library)标准模板库是C++最重要的组成部分,它提供了一组表示容器.迭代器.函数对象和算法的模板.其中容器是存储类型相同的数据的结构(如vector,list, deque, set, map等),算法完成特定任务,迭代器用来遍历容器对象,扮演容器和算法之间的胶合剂. 模板类vector 在计算中,矢量(vector)对应数组,它的数据安排以及操作方式,与array非常类似.在C++中,使用vector模板类时,需要头文件包含#include<v

STL学习二:Vector容器

1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添加或移除元素非常快速.但是在中部或头部插入元素或移除元素比较费时. 2.vector对象的默认构造 vector采用模板类实现,vector对象的默认构造形式 vector<T> vecT; vector<int> vecInt;          //一个存放int的vector容器

STL之vector,数组线性容器array,list容器,算法find,find_if,bind1st,仿函数

 1.STL(Standard Template Library,是用泛型技术来设计完成的实例)的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器) STL的六大组件分别是: 容器(Container) 算法(Algorithm) 迭代器(Iterator) 仿函数(Function object) 适配器(Adapter) 空间配置器(allocator):只能分配内存等 2.容器与算法 案例如下: #include<

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

STL源码之实现一个简易的Vector容器

STL源码之实现一个简易的Vector容器 这里需要的基础知识主要是类模板和函数模板,以及一个C++内存分配的技术allocator类,它提供可感知类型的内存分配,这个类支持一个抽象接口,以分配内存并随后使用该内存保存对象. 使用allocator类,首先应用allocator类建立一个allocator对象,然后使用该对象你可以分配内存,释放内存,构造你需要的对象,释放不要的对象. template<class T>allocator<T> Vector<T>::al