STL
文章平均质量分 62
shudou
大的梦想,小的起步
展开
-
STL容器vector的下标运算符[]
对于容器vector,[]操作符的作用是获取相应位置上的值,有的时候使用不当就会造成问题,请看下面例子:vector vec;cout 上面的代码会出现Segmentation fault (core dumped),这是因为vec里面没有元素,还没有分配内存空间以存储元素,却对vec的0位置作出访问,因此等同于指针越界访问。正常的情况下,大家可能都不会写出以上的代码,但是当原创 2013-12-15 19:44:53 · 5313 阅读 · 0 评论 -
《STL源码剖析》学习之迭代器
在设计模式中有一种模式叫迭代器模式,简单来说就是提供一种方法,在不需要暴露某个容器的内部表现形式情况下,使之能依次访问该容器中的各个元素,这种设计思维在STL中得到了广泛的应用,是STL的关键所在,通过迭代器,容器和算法可以有机的粘合在一起,只要对算法给予不同的迭代器,就可以对不同容器进行相同的操作。原创 2013-09-08 22:54:25 · 8620 阅读 · 0 评论 -
STL容器map的下标运算符[]
在STL中,map是一个关联式容器,它提供一对一的数据处理能力,即其中每一个元素都是一个键值对,通过一个唯一的关键字,可以唯一映射到对应的数据值。而map中重载了下标运算符[],通过下标操作,开发人员可以很方便地根据关键字获取到对应的值。虽然使用方便,但是还是有一些地方容易出现问题,值得大家的注意。原创 2013-12-15 19:37:56 · 15232 阅读 · 2 评论 -
谨慎优化代码
大家在尝试对旧的代码进行优化的时候,请多思考几遍,确定为什么要优化?优化会生效?怎么优化?不要单纯的以为代码量减少了,程序就能到优化,要知道存在即合理,旧的代码或许已经过时了,但是当时这样写也必然有它的道理,要深入分析之后才动手啊原创 2013-12-15 20:03:28 · 1784 阅读 · 0 评论 -
《STL源码剖析》学习之traits编程
在设计模式中有一种模式叫迭代器模式,简单来说就是提供一种方法,在不需要暴露某个容器的内部表现形式情况下,使之能依次访问该容器中的各个元素,这种设计思维在STL中得到了广泛的应用,是STL的关键所在,通过迭代器,容器和算法可以有机的粘合在一起。在这里提到了一个叫迭代器的东西....原创 2013-09-15 20:04:03 · 12236 阅读 · 2 评论 -
STL容器的删除元素问题
STL的容器分为两类,一类是序列式容器,即数据顺序连续存储,如:vector、deque;另一类是关联式容器,即数据不连续存储,如:map、list、set。对于STL容器的数据删除操作,有一些需要注意的地方。原创 2013-12-15 19:59:35 · 3811 阅读 · 4 评论 -
STL之防止内存泄露
可以自由分配和释放内存造就了C++的灵活和强大,但这也是使用C++最容易出现问题的地方,内存泄露问题,估计程序猿都会或多或少的遇到,也遭受了很多程序猿们的深恶痛绝,无数个加班的晚上可能就是因为少了一个delete的缘故。 用过C++的人基本上都应该会了较过一个叫STL(标准模板库)的东西,这个东西在一定程度上,更进一步推动了C++的发展和普及程序,里面对于C++模板以及C++三大特原创 2013-12-15 21:27:10 · 3986 阅读 · 0 评论 -
STL容器List的一个小技巧
在STL中,list是一个双向循环链表,所谓循环链表就是指链表的头部和尾部是连接在一起的,下面两段代码实现的功能是一样的,但是执行过程却有所不同://第一种list lst1;if (lst1.empty()){ //do something}//第二种listlst2;if (lst2.size() == 0){ //do something}原创 2013-12-15 19:51:13 · 1986 阅读 · 0 评论 -
STL之一些事一些情
何谓STL?STL(Standard Template Library),即标准模板库,它是一些容器和算法组成的集合,其中容器就是指存储数据的数据结构,如vector、list、deque、map、set等,而算法则是指操作这些数据结构的逻辑,如sort、find、copy、erase等。STL标准模板库是由世界上很多聪明人花费很多年所研究出来的杰作,其目的是通过标准化组件、提高组件的稳定性,以减原创 2013-12-15 19:26:58 · 1003 阅读 · 0 评论 -
string容易忽略的一些问题
在使用C的char*字符串时,我们常常会纠结以下的一些问题:分配的char*数组空间是否足够如何获取char*字符串的长度如何拼接两个char*字符串 可以说,string的出现,大家再也不用烦恼上面的一些问题了,string是一个类,里面封装了很多常用的操作函数以及成员变量,基本上可以满足我们绝大部分的字符串操作的需要。但是在使用string的过程中,还是有一些点需要注意的原创 2013-12-15 19:28:36 · 20424 阅读 · 0 评论 -
STL容器vector的内存问题
在STL的容器中,vector可以说是最容易理解和使用的容器了,以前使用数组的时候,如果不确定有多少数据要存储,就会预先分配一个大的数组,如果实际没有用到那么多,又会浪费很多的内存资源,如果不分配大的数组又担心不够用,有了vector之后,这些问题再也不用担心了,vector会动态的增长空间,当vector空间不足时会自动申请一片更大的内存空间,以存储新的数据。原创 2013-12-15 19:57:42 · 9154 阅读 · 1 评论