何谓STL?STL(Standard Template Library),即标准模板库,它是一些容器和算法组成的集合,其中容器就是指存储数据的数据结构,如vector、list、deque、map、set等,而算法则是指操作这些数据结构的逻辑,如sort、find、copy、erase等。STL标准模板库是由世界上很多聪明人花费很多年所研究出来的杰作,其目的是通过标准化组件、提高组件的稳定性,以减轻开发人员重造车轮的负担,使得开发人员可以把主要精力放在实际的业务逻辑中。
在STL中,容器vector应该是大家使用最多的组件了,由于vector可以动态增长内存,当其剩余空间不足以容纳新数据的时候,它会自动申请一片更大的内存空间,以存放新数据。可以说,自从有了vector之后,开发人员再也不用担心声明的数组不够大的问题,同时也不用担心new出来的数组,忘记了delete了,因为vector在其析构函数里面会进行内存的释放操作,既干净又环保啊!还有其它很多的容器和算法,其带给我们的便利的确是实实在在的。但是有利就有弊有,STL的便利是因为它帮我们封装了相关的实现,而正因为这些贴心的封装,使得我们往往忽视了其中的一些问题,当我们在使用的时候,如果对其相关实现和用法不留意的话,就会容易出现错误,甚至是程序崩溃,接下来的博客中将会介绍一下使用STL的过程中的一些容易出现问题的地方。
在STL中,容器vector应该是大家使用最多的组件了,由于vector可以动态增长内存,当其剩余空间不足以容纳新数据的时候,它会自动申请一片更大的内存空间,以存放新数据。可以说,自从有了vector之后,开发人员再也不用担心声明的数组不够大的问题,同时也不用担心new出来的数组,忘记了delete了,因为vector在其析构函数里面会进行内存的释放操作,既干净又环保啊!还有其它很多的容器和算法,其带给我们的便利的确是实实在在的。但是有利就有弊有,STL的便利是因为它帮我们封装了相关的实现,而正因为这些贴心的封装,使得我们往往忽视了其中的一些问题,当我们在使用的时候,如果对其相关实现和用法不留意的话,就会容易出现错误,甚至是程序崩溃,接下来的博客中将会介绍一下使用STL的过程中的一些容易出现问题的地方。