05 2015 档案

【STL源码剖析读书笔记】自己实现priority_queue之MyPriorityQueue
摘要:MyHeap.h#ifndef MY_HEAP_H#define MY_HEAP_H#include#include#define max_value 99999999//仿函数templatestruct MyLess{ bool operator()(const T& x, const T& y... 阅读全文

posted @ 2015-05-31 14:49 ruan875417 阅读(250) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】自己实现Heap算法之MyHeap(底层容器用vector)
摘要:MyHeap.h#ifndef MY_HEAP_H#define MY_HEAP_H#include#include#define max_value -99999999//仿函数templatestruct MyLess{ bool operator()(const T& x, const T& ... 阅读全文

posted @ 2015-05-30 18:47 ruan875417 阅读(215) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】自己实现queue之MyQueue(底层用MyList)
摘要:MyList.h#ifndef MY_LIST_H#define MY_LIST_H#include//list的node结构templatestruct list_node{ typedef list_node* pointer; pointer prev; pointer next; T dat... 阅读全文

posted @ 2015-05-29 20:18 ruan875417 阅读(353) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】自己实现stack之MyStack(底层用MyList)
摘要:MyList.h#ifndef MY_LIST_H#define MY_LIST_H#include//list的node结构templatestruct list_node{ typedef list_node* pointer; pointer prev; pointer next; T dat... 阅读全文

posted @ 2015-05-29 18:22 ruan875417 阅读(235) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】自己实现list之MyList
摘要:MyList.h#ifndef MY_LIST_H#define MY_LIST_H#include#include//list的节点结构templatestruct list_node{ typedef list_node* pointer; pointer prev; pointer next;... 阅读全文

posted @ 2015-05-29 14:50 ruan875417 阅读(213) 评论(0) 推荐(1) 编辑

【STL源码剖析读书笔记】自己实现vector之MyVector
摘要:MyVector.h#ifndef MY_VECTOR_H#define MY_VECTOR_H#define _SCL_SECURE_NO_WARNINGS //为了防止在VS2013中报错#include //ptrdiff_t#includetemplatevoid destroy(T* pt... 阅读全文

posted @ 2015-05-28 15:07 ruan875417 阅读(295) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【160】Intersection of Two Linked Lists
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode *getI... 阅读全文

posted @ 2015-05-27 20:48 ruan875417 阅读(98) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】自己实现简单的空间配置器MyAllocator
摘要:MyAllocator.h#ifndef MY_ALLOCATOR_H#define MY_ALLOCATOR_H#include //placement new#include //ptrdiff_t size_t//分配内存templateinline T* _allocator(ptrdiff... 阅读全文

posted @ 2015-05-27 18:55 ruan875417 阅读(173) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第8章】配接器
摘要:1、 设计模式中对配接器的定义如下:将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes可以一起运作。2、 容器配接器stack和queue是两个容器配接器,底层默认由deque构成。stack封住了所有的deque对外接口,只开放符合stack原则的几个... 阅读全文

posted @ 2015-05-27 10:12 ruan875417 阅读(194) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第7章】仿函数
摘要:1、仿函数也叫作函数对象,是一种具有函数特质的对象,调用者可以像函数一样地调用这些对象。仿函数必须重载operator()。2、 STL中仿函数代替函数指针的原因在于函数指针不能满足STL对抽象性的要求,也不能满足软件积木的要求,函数指针无法与STL其他组件搭配。3、 STL仿函数与STL算法之间的... 阅读全文

posted @ 2015-05-26 11:47 ruan875417 阅读(167) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之inplace_merge算法
摘要:1、 inplace_merge()函数将两个连接在一起的排序序列[first, middle)和[middle, last)结合成单一序列并保持有序。inplace_merge()函数是stable操作。2、 inplace_merge()版本一的源代码,只讨论了有暂时缓冲区的情况template... 阅读全文

posted @ 2015-05-26 10:37 ruan875417 阅读(328) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【148】Sort List
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* merg... 阅读全文

posted @ 2015-05-25 18:29 ruan875417 阅读(136) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【147】Insertion Sort List
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* inse... 阅读全文

posted @ 2015-05-25 16:17 ruan875417 阅读(117) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之next_permutation和prev_permutation算法
摘要:1、next_permutation()会取得[first, last)所标示序列的下一个排列组合,如果没有下一个排列组合,返回false,否则返回true。2、next_permutation()函数算法原理:从最尾端开始寻找两个相邻的元素,令第一个元素是*i,第二个元素是*ii,且满足*i bo... 阅读全文

posted @ 2015-05-25 10:10 ruan875417 阅读(154) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【143】Reorder List
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: //翻转链表 ListNod... 阅读全文

posted @ 2015-05-24 19:54 ruan875417 阅读(135) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【86】Partition List
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* part... 阅读全文

posted @ 2015-05-24 16:02 ruan875417 阅读(131) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之rotate算法
摘要:1、 rorate函数将[first, middle)内的元素和[middle, last)内的元素互换,middle所指元素成为容器的第一个元素。rotate函数为了追求效率,根据迭代器的移动能力将其分三种情况进行讨论:分别为ForwardIterator, BidirectionalIterat... 阅读全文

posted @ 2015-05-24 14:03 ruan875417 阅读(456) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之partition算法
摘要:1、partition将区间[first, last)中的元素重新排列。所有被一元条件运算pred判定为true的元素,放在区间的前段,判定为false的元素,放在区间的后段。该算法并不保证元素的原始相对位置。2、partition源代码template BidirectionalIterator ... 阅读全文

posted @ 2015-05-23 21:56 ruan875417 阅读(244) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之set相关算法
摘要:1、 STL提供了4个set相关的算法,分别是并集(union)、交集(intersection)、差集(difference)和对称差集(symmetric difference),这4个算法接受的set必须是有序区间,都至少接受4个参数,分别表示两个set区间。2、 set相关算法源代码//并集... 阅读全文

posted @ 2015-05-23 15:18 ruan875417 阅读(150) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之copy算法
摘要:由于copy进行的是复制操作,而复制操作不外乎用assignment operator或copy constructor(copy算法用的是前者),但是某些元素型别拥有的是trivial assginment operator,因此,如果能够使用内存直接复制行为(例如C标准函数memmove... 阅读全文

posted @ 2015-05-23 13:12 ruan875417 阅读(162) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第6章】算法之power算法
摘要:开始看power函数的版本二时,有点迷糊,这里用了十进制数的二进制表示法。十进制数,这里n0,n1,n2,…,nk等于0或1,则。举个例子:13=20+22+23=(1101)2,令result初始值为1,因此要计算xn,只要将n化为二进制并由低位到高位依次判断,如果第i位为1,则。int powe... 阅读全文

posted @ 2015-05-22 19:12 ruan875417 阅读(221) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】STL容器迭代器失效问题总结
摘要:一、vector1、当push_back一个元素后,若capacity大小与push_back前相比不变,则end操作返回的迭代器失效;若capacity大小与push_back前相比增大了,说明引起了内存重新分配,原来的内存被释放了,此时所有迭代器全部失效;3、当insert一个或多个元素后,若c... 阅读全文

posted @ 2015-05-21 20:46 ruan875417 阅读(193) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【61】Merge k Sorted Lists
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* rota... 阅读全文

posted @ 2015-05-21 16:43 ruan875417 阅读(99) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第5章】关联式容器之hash_set、hash_map、hash_multiset和hash_multimap
摘要:一、hash_set1、hash_set以hashtable为底层机制,hash_set的操作几乎都是转调用RB-tree的函数而已。2、hash_set的元素没有自动排序功能。3、hash_set的使用方式与set完全相同。4、测试例子#include#includeusing namespace... 阅读全文

posted @ 2015-05-21 13:36 ruan875417 阅读(209) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第5章】关联式容器之hashtable
摘要:1、hashtable在插入、删除、搜寻操作上具有“常数平均时间”的表现,不依赖输入元素的随机性。2、hashtable通过hashfunction将元素映射到不同的位置,但当不同的元素通过hash function映射到相同的位置时,便产生了“碰撞”问题。解决碰撞问题的方法主要有线性探测、二次探测... 阅读全文

posted @ 2015-05-20 13:44 ruan875417 阅读(196) 评论(0) 推荐(0) 编辑

【leetcode】【单链表,vector,queue】【23】Merge k Sorted Lists
摘要:#include#include#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public... 阅读全文

posted @ 2015-05-19 15:32 ruan875417 阅读(145) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【21】Merge Two Sorted Lists
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* merg... 阅读全文

posted @ 2015-05-18 17:00 ruan875417 阅读(122) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第5章】关联式容器之set、map、multiset和multimap
摘要:一、set1、 set的特性是所有元素都会根据元素的键值自动排序,set元素的键值就是实值,实值就是键值。2、 不能通过set的迭代器改变set的元素,setiterators是一种constant iterators。3、 客户端对set进行元素新增或者删除操作时,操作之前的所有迭代器在操作后都依... 阅读全文

posted @ 2015-05-18 14:04 ruan875417 阅读(181) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第5章】关联式容器之RB-tree
摘要:1、 二叉树:任何节点最多只有两个子节点,这两个子节点分别称为左子节点和右子节点。2、 二叉搜索树:任何节点的键值一定大于其左子树中的每一个节点的键值,小于其右子树中的每一个节点的键值。3、 红黑树不仅是一个二叉搜索树,还必须满足以下条件:1) 每个节点不是红色就是黑色。2) 根节点为黑色。3) 如... 阅读全文

posted @ 2015-05-18 11:40 ruan875417 阅读(221) 评论(0) 推荐(0) 编辑

2.5年, 从0->阿里
摘要:转自:http://blog.csdn.net/zjf280441589/article/details/45639523 从来没有想到自己的求职之路会这么顺利,第一次投阿里就拿到了offer,以前一直都是做好被刷的准备的... 3月31号晚上收到了来自阿里的正式offer,签下录取意向书,粗... 阅读全文

posted @ 2015-05-17 19:53 ruan875417 阅读(151) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第4章】序列式容器之heap和priority_queue
摘要:一、heap1、heap概述heap并不归属于STL容器组件,扮演priority queue的助手,binary max heap适合作为priority queue的底层机制。binary heap是一种completebinary tree,整棵binary tree除了最底层的叶子节点外是填... 阅读全文

posted @ 2015-05-16 10:03 ruan875417 阅读(258) 评论(0) 推荐(0) 编辑

【leetcode】【单链表,queue】【2】Add Two Numbers
摘要:#include#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNo... 阅读全文

posted @ 2015-05-15 18:48 ruan875417 阅读(102) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【24】Swap Nodes in Pairs
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* swap... 阅读全文

posted @ 2015-05-14 15:18 ruan875417 阅读(124) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【19】Remove Nth Node From End of List
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* remo... 阅读全文

posted @ 2015-05-13 16:42 ruan875417 阅读(143) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【203】Remove Linked List Elements
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* remo... 阅读全文

posted @ 2015-05-13 15:59 ruan875417 阅读(107) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第4章】序列式容器之stack和queue
摘要:一、stack1、stack概述stack是一种先进后出(First In LastOut,FILO)的数据结构,它只有一个出口。stack允许新增元素,移除元素、取得最顶端元素,但不允许有遍历行为。由于stack系以底部容器完成其所有工作,而具有这种“修改某物接口,形成另一种风貌”之性质者,称为a... 阅读全文

posted @ 2015-05-13 13:59 ruan875417 阅读(213) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【82】Remove Duplicates from Sorted List II
摘要:#include#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNo... 阅读全文

posted @ 2015-05-12 16:29 ruan875417 阅读(116) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【83】Remove Duplicates from Sorted List
摘要:#include#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNo... 阅读全文

posted @ 2015-05-12 15:45 ruan875417 阅读(113) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第4章】序列式容器之deque
摘要:1、deque概述deque是一种双向开口的连续线性空间,可以在头尾两端分别做元素的插入和删除操作。deque没有容量的概念,它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并链接起来。2、deque的中控器deque由一段一段的定量连续空间构成。一旦有必要在dequer前端或尾端增加新空... 阅读全文

posted @ 2015-05-11 20:15 ruan875417 阅读(155) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【142】Linked List Cycle II
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode *dete... 阅读全文

posted @ 2015-05-11 16:22 ruan875417 阅读(113) 评论(0) 推荐(0) 编辑

【leetcode】【141】Linked List Cycle
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: bool hasCycle(... 阅读全文

posted @ 2015-05-11 15:14 ruan875417 阅读(92) 评论(0) 推荐(0) 编辑

【leetcode】【92】Reverse Linked List II
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: ListNode* reve... 阅读全文

posted @ 2015-05-10 10:22 ruan875417 阅读(155) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【206】Reverse Linked List
摘要:#include#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public: /... 阅读全文

posted @ 2015-05-10 09:34 ruan875417 阅读(123) 评论(0) 推荐(0) 编辑

【leetcode】【189】Rotate Array
摘要:#include#includeusing namespace std;class Solution {public: void rotate(vector& nums, int k) { //可参考STL源码剖析rotate()算法 k = k%nums.size(); vector::it... 阅读全文

posted @ 2015-05-09 14:10 ruan875417 阅读(131) 评论(0) 推荐(0) 编辑

【leetcode】【190】Reverse Bits
摘要:#include#includeusing namespace std;class Solution {public: uint32_t reverseBits(uint32_t n) { uint32_t sum = 0; uint32_t mask = 1; int count = 32;... 阅读全文

posted @ 2015-05-09 11:16 ruan875417 阅读(117) 评论(0) 推荐(0) 编辑

【leetcode】【191】Number of 1 Bits
摘要:#include#includeusing namespace std;class Solution {public: int hammingWeight(uint32_t n) { int count = 0; while (n){ n &= (n - 1);//见http://blog.... 阅读全文

posted @ 2015-05-09 10:50 ruan875417 阅读(122) 评论(0) 推荐(0) 编辑

找工作总结
摘要:找工作的高峰期已经结束了,不出意外下周就要签三方了,这次找工作感觉对自己还是挺重要的,也算是自己人生中的一件大事,毕竟是自己的地一份工作,因此记录下来,算是自己学生生活的一次总结,也希望给师弟师妹们一点启发。 首先,要感谢我的母校--华中科技大学,没有这个优秀的学校做后台,我想自己根本没有机会去... 阅读全文

posted @ 2015-05-09 09:59 ruan875417 阅读(157) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第4章】序列式容器之list和slist
摘要:一、list1、list概述list是双向链表,对于任何位置的元素插入或元素移除,list永远是常数时间。2、list的节点list本身和list节点是不同的数据结构,需要分开设计。STL list的节点结构:template struct __list_node { typedef void* ... 阅读全文

posted @ 2015-05-08 10:58 ruan875417 阅读(235) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第4章】序列式容器之vector
摘要:1、 vector概述vector是动态空间,随着元素的加入,它内部机制会自行扩充空间以容纳新元素。vector的实现技术,关键在于其对大小的控制及重新配置时的数据移动效率。2、 vector的迭代器vector的迭代器是普通指针,支持随机存取,提供的是Random Access Iterators... 阅读全文

posted @ 2015-05-06 18:37 ruan875417 阅读(194) 评论(0) 推荐(0) 编辑

2014年计算机求职总结--准备篇
摘要:版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/13000431找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作... 阅读全文

posted @ 2015-05-06 08:33 ruan875417 阅读(168) 评论(0) 推荐(0) 编辑

研究生阶段学习计划
摘要:语言经典书:必看:c++ priemer->effective C++->深度探索C++对象模型->c++ templates中文版->stl源码分析选看:C和指针->C专家编程->C陷阱与缺陷->你必须知道的495个C语言问题->C++必知必会->MoreEffective C++->Effect... 阅读全文

posted @ 2015-05-05 16:05 ruan875417 阅读(197) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第3章】迭代器概念与traits编程技法
摘要:1、迭代器模式:提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该聚合物的内部表达式。2、STL的中心思想:将数据容器和算法分开,彼此独立设计,最后用迭代器将它们撮合在一起。3、迭代器是一种智能指针,最终要的编程工作就是对operator*和operator->进行重载工作。4、迭... 阅读全文

posted @ 2015-05-05 09:47 ruan875417 阅读(197) 评论(0) 推荐(0) 编辑

【STL源码剖析读书笔记】【第2章】空间配置器
摘要:1、 allocator是空间配置器而不是内存配置器,空间不一定是内存,也可以是磁盘或其它辅助存储介质。但SGI STL提供的配置器配置的对象是内存。2、 SGI标准的空间配置器,std::allocatorSGI定义了一个符合部分标准,名为allocator的配置器,效率不高,只把c++的::op... 阅读全文

posted @ 2015-05-02 16:32 ruan875417 阅读(163) 评论(0) 推荐(0) 编辑

2014找工作----扎实的基础和开阔的视野是企业最看重的因素
摘要:转自:http://blog.csdn.net/lingfengtengfei/article/details/12884465其实找工作之前一直很忐忑,或者说不是很自信,因为各种传言说14年就业难。实验室的项目逼的有些紧,在四川做项目,腾讯实习面试都错过了。4月底回到学校给实验室申请不去实验室,准... 阅读全文

posted @ 2015-05-01 09:23 ruan875417 阅读(136) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示