- 博客(5)
- 收藏
- 关注
原创 输出二叉树每层节点数量
/* 输出二叉树每层的节点*/typedef struct node{ struct node* left; struct node* right; node(){ left = NULL; right = NULL; };} node,*nodeptr; void count(vector layerlist){ if (layerlist.size() == 0)
2017-09-30 17:14:47 2253
原创 一个笔试题,射击靶子最高得分问题
有一排靶子,靶子上有不同的得分,亦枪手射击靶子,集中某个靶子则得到相应的得分,但是没集中一个靶子都会破坏掉它两侧的两个靶子(如果有的话),求这个枪手能够得到的最高分:输入 : 第一行 整数n, 第二行 n 个整数表示 每个八字的分数(分数最少为1)输出 该枪手的最高得分:解题思想: 枪手每击中一个靶子在得分的时候,还会破坏两个靶子,在得到该靶子分数
2017-09-30 16:51:02 1868
原创 c++ 流对象之streambuf
先来看一看c++ 的 io 体系:c++ 流的概念大大的方便了IO操作,概念上我们可以把Stream 看作一个管道,IO 操作即是往里塞数据和往外取数据,而不用考虑管道里面的溢出越界等各种情况。在stream 得实现中,如上图,所有的非虚基类内部都有一个streambuf, streambuf 是一个虚基类,代表流对象内部的缓冲区,他有两个子类,分别是stringbuf 和
2017-09-27 11:14:47 20884 4
原创 c++ 范围for 循环的两点注意事项
C++11支持range-based for循环。这是一个很方便的特性,能省挺多代码。以下代码就能很方便的遍历vector中的元素,并使每个元素翻倍:v = {1,2,3,4};for( atuo& r : v){ r *= 2;}可以遍历的对象包括:数组。(不包括指针)定义了begi
2017-09-07 14:26:23 1100
原创 c++ erase 会使迭代器失效
因为erase函数会真正删除元素,导致后面的元素前移,因此后面的迭代器失效(不能引用到正确的结果)所以每次执行完erase操作之后,后面的迭代器都会失效,看看下main的代码:int removeDuplicates(vector& nums) { map tmp_map; for(vector::iterator it = nums.begin(); it != nu
2017-09-07 14:08:27 3744 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人