C++中模板,是相当重要的一部分,前面提到过一些基础,关于模板中需要注意的问题,会在最近整理出来,今天想说的,是由模板引出的标准模板库。
我们提供的服务有:成都网站建设、成都做网站、微信公众号开发、网站优化、网站认证、奉化ssl等。为数千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的奉化网站制作公司
当初经常会被推荐看《STL源码剖析》这本书,听说很厉害,是C++高手都需要走过的路,可一直都不知道STL是什么,也一直忘记去查,今天整理出来的一些东西,最起码可以让未了解过这方面的童鞋认识一下。
C++标准模板库,即STL:Standard Template Lib,STL的产生,是必然的。在长期的编码过程中,一些程序员发现,有一些代码经常用到,而且需求特别稳定,于是,各大公司就在出售自己的IDE环境的同时,将这些代码打包一起销售,之后,这些大公司就达成共识,认为应该讲这部分代码进一步统一规范,于是,就形成了一套标准模板,也就慢慢演变成了现在的STL。
C++标准模板库是一个相当庞大的家族,今天,提到的是一些常用的部分,拿出来和大家分享。其他的使用方法,与今天要提到的这些都特别相似,很多程序员在开发项目的时候,都是随用随学。现在就进入今天的正题。
vector向量:头文件:#include
vector的本质是对数组的分装,可以认为它是一个数组,不过相对数组功能更强大,根据存储的元素个数,自动的变长或者缩短,特点:读取能在常数时间完成
在VS2013环境下,可以简单验证一下。
其中,size是该向量当中现有元素个数,capacity是该向量所能容纳最多数组元素
初始化vector对象的方式:
1、vector
2、vector
3、vector
4、vector
向量常用函数:
empty()----->判断向量是否为空<空返回true,非空返回fause>
begin()----->返回向量迭代器首元素
end()----->返回向量迭代器末元素的下一个元素
clear()----->清空向量
front()----->第一个数据
back()----->最后一个数据
size()----->获得向量中数据大小
push_back(elem)----->将数据插入向量尾
pop_back()----->删除向量尾部数据
既然说,向量是数组的封装,那么,无法避免的就要考虑到它的遍历问题。
向量遍历有两种方式:
一、按照数组形式遍历
for(int i = 0;i { cout< } 二、使用迭代器 向量迭代器的定义方式如下: vector 链表模板:list 头文件:#include 特点:数据插入速度快 使用方法:与向量使用方法基本相同, 有push、insert、begin、end等函数,也可通过迭代器进行访问 值得注意的是,list不可以通过数组的方式进行访问 同样给出list遍历的代码,如下: 映射模板:map 头文件: #include map中键(key)与值(value)是一一对应的,即成对出现,通过关键字pair定义若干对key和value,再通过insert函数插入到map中。 用迭代器遍历map时,不可以对迭代器前加*直接访问 给出map遍历的代码,如下: 除此之外,ma元素的数组访问,和简单的数组也是有不同的,比如下面这段代码。 int main(void)
{
vector
int main(void)
{
list
int main(void)
{
map
map
名称栏目:C++模板引出的标准模板库----->初涉
本文网址:http://cxhlcq.com/article/gecihs.html