
C++
文章平均质量分 72
YLMF_yyz
Hello world!
展开
-
STL中用ERASE()方法遍历删除元素
STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。在使用 list、set 或 map遍历删除某些元素时可以这样使用std::list List; std::list::iterator itList;转载 2015-03-30 15:01:24 · 551 阅读 · 0 评论 -
二叉树非递归遍历,不使用栈(前序,中序,后续)
二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,它们都有使用栈和不使用栈的方法,其中不使用栈的非递归遍历又是找工作面试中经常被问的问题,所以在这里做一总结原创 2015-04-02 09:32:13 · 3120 阅读 · 0 评论 -
C/C++字节对齐分析
今天突然用到了字节对齐的知识,所以看了几遍文章并做了些测试,总结如下为什么要对齐呢?为了提高存取效率。字节是内存空间分配的最小单位, 在程序中,我们定义的变量可以放在任何位置。其实不同架构的CPU在访问特定类型变量时是有规律的,比如有的CPU访问int型变量时,会从偶数地址开始读取的,int类型占用4个字节(windows平台)。 0X0000,0X0004,0X0008.....这样只需要读一次就可以读出Int类型变量的值。相反地,则需要读取二次,再把高低字节相拼才能得到 int类型的值,这样子看的话,原创 2015-04-08 13:04:43 · 564 阅读 · 0 评论