- 博客(9)
- 资源 (28)
- 收藏
- 关注
转载 算法 时间复杂度 logN 底数
问题: 最近有好几学生问我,无论是计算机算法概论、还是数据结构书中, 关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。 解答: 算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。 如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。
2017-05-08 13:23:28 2202
转载 C++中typename和class的区别
在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢? 相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template...... 在 这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typ
2017-05-07 22:44:27 549
转载 STL算法之回调函数和函数对象的理解及设计
引言:在我们使用STL的算法的时候,很多算法提供回调函数为参数和函数对象来作为参数,提供 更加强大的功能。就比如STL中sort算法来说吧,我们可能一般情况下这么使用sort(v.begin(), v.end()); 这种情况下是对容器中元素默认升序排序。那么我们怎么实现降序排序呢?有两种方法,要么用库中提 供的函数对象作为参数,要么自己编写个函数或者函数对象来作为参数。那么问题来了,库中提
2017-05-06 16:41:00 488
转载 Protocol Buffer
该系列Blog的内容主体主要源自于Protocol Buffer的官方文档,而代码示例则抽取于当前正在开发的一个公司内部项目的Demo。这样做的目的主要在于不仅可以保持Google文档的良好风格和系统性,同时再结合一些比较实用和通用的用例,这样就更加便于公司内部的培训,以及和广大网友的技术交流。需要说明的是,Blog的内容并非line by line的翻译,其中包含一些经验性总结,与此同时,对于一
2017-05-05 23:28:15 400
转载 STL erase陷阱
阅读目录(Content) 1.list,set,map容器 1.1 正确写法11.2 正确写法21.3 错误写法11.4 错误写法21.5 分析 2. vector,deque容器 2.1 正确写法2.2 注意 3.迭代器失效的情况 3.1 vector3.2 deque3.3 list3.4 slist3.5 stack3.6 queue3.7 priority_q
2017-05-05 21:20:09 429
转载 c++STL常见面试题2
1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等 2.标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成
2017-05-05 20:59:47 1117
转载 C++STL常见面试题1
http://blog.csdn.NET/tianya_team/article/details/50753759 1.说说std::vector的底层(存储)机制。 vector就是一个动态数组,里面有一个指针指向一片连续的内存空间,当空间不够装下数据时,会自动申请另一片更大的空间(一般是增加当前容量的50%或100%),然后把原来的数据拷贝过去,接着释放原来的那片
2017-05-05 20:47:57 3762
原创 list基础知识
1、list是一个双向链表,对于任何位置的元素的插入和元素移除,list永远是常数时间 2、list有一个重要性质:插入操作和接合操作都不会造成原有list迭代器的失效,甚至list的元素的删除操作(erase),也只有“指向被删除元素”的那个指针失效,其他迭代器不受影响 3、算法中提供的sort()函数,不适用于list,list自己实现了sort int arr[] = {87,65,
2017-05-01 18:09:46 389
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人