c语言将文件内容写到内存

char* ContentOfFile(char* file_name) { FILE* file = fopen(file_name, "rb"); if (!file) { printf("打开文件失败\n"); return N...

2019-06-03 15:12:17

阅读数 5

评论数 0

详解UML类图

1. 类 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责。在定义类的时候,将类的职责分解成为类的属性...

2019-05-06 22:15:52

阅读数 41

评论数 0

用两个栈实现队列&&两个队列实现栈

做题之前,我们先来回顾一下“栈和队列的相同点以及不同点”,便于做题时的应用! 1.区别与联系 相同点:(1)栈和队列都是控制访问点的线性表; (2)栈和队列都是允许在端点处进行数据的插入和删除的数据结构; 不同点:(1)栈遵循“后进先出(LIFO)”的原则,即只能在该线性表的一头进行数据的...

2019-04-22 10:58:31

阅读数 57

评论数 0

剑指offer之:抽象建模,位运算,

(1)二进制中1的个数 (2)打印从1到最大的n位数 (3)1-n整数中1出现的次数 (4)礼物的最大价值 (6)丑数 (7)n个筛子的点数 (8)扑克牌中的顺子 (9)圆圈中最后剩下的数字 (10)股票的最大利润 (11)求1+2+3+,,,,,+n; (12)不用加减乘除做...

2019-04-21 20:17:46

阅读数 21

评论数 0

剑指offer之:动态规划、回溯、贪婪、

(1)矩阵中的路径 (2)机器人的运动 (3)剪绳子

2019-04-21 20:14:14

阅读数 19

评论数 0

剑指offer之:数组/数字处理(相关体题目)

(1)数组中重复的数字 (2)二维数组中的查找 (3)旋转数组的最小数字 (4)数值的整数次方 (5)调整数组顺序使奇数位于偶数前面 (6)顺时针打印矩阵 (7)数组中出现次数超过一般的数字 (8)最小的k个数 (9)数据流中的中位数 (10)连续子数组的最大和 (11)数字序...

2019-04-21 20:11:27

阅读数 18

评论数 0

剑指offer之:栈与队列(相关题目)

(1)用两个栈实现队列 (2)包含min函数的栈 (3)栈的压入,弹出序列 (4)队列的最大值

2019-04-21 20:06:31

阅读数 23

评论数 0

剑指offer之:字符串(相关题目)

(1)替换空格 (2)正则表达式匹配 (3)表示数值的字符串 (4)字符串的排列 (5)把数组翻译成字符串 (6)最长不含重复字符的子字符串 (7)第一个只出现一次的字符串 (8)翻转字符串 ...

2019-04-21 20:04:33

阅读数 21

评论数 0

剑指offer之:树(相关题目)

(1)重建二叉树 (2)二叉树的下一个节点 (3)树的子结构 (4)二叉树的镜像 (5)对称的二叉树 (6)从上到下打印二叉树 (7)二叉搜索树的后序遍历序列 (8)二叉树中和为某一值的路径 (9)二叉搜索树与双向链表 (10)序列化二叉树 (11)二叉搜索树的第K大节点 (...

2019-04-21 20:02:11

阅读数 22

评论数 0

剑指offer之:链表(相关题目)

下面是剑指offer里面链表相关题目的总结 (1)从尾到头打印链表 (2)删除链表的节点 (3)链表中的倒数第K个节点 (4)链表中环的入口节点 (5)反转链表 (6)合并两个排序的链表 (7)复杂链表的复制 (8)二叉搜索树与双向链表 (9)两个链表的第一个公共节点 ...

2019-04-21 19:58:58

阅读数 20

评论数 0

c/c++中二维数据的动态创建与释放

给数组动态分配内存或者初始化,是因为我们不知道要分配多少个数 1,c语言中动态的分配二维数组 使用malloc()、free()函数进行动态分配,这两个函数包含于stdlib.h或malloc.h中 假如要申请一个3行5列的二维数组内存 #include <stdlib...

2019-04-20 19:10:13

阅读数 25

评论数 0

哈希表之:two sum / three sum / four sum

1,two sum:返回数组里面两个数加起来等于给定值的数字的下标 思路:用哈希表来做,在这了直接用了STL中的map将数值与下标进行了映射 代码: classSolution{ public: vector<int>twoSum(vector&am...

2019-04-18 15:46:08

阅读数 38

评论数 0

STL之vector中push_back的时间复杂度分析

vector是STL中的一种序列式容器,采用的数据结构为线性连续空间,它以两个迭代器start和finish分别指向配置得来的连续空间中目前已被使用的范围,并以迭代器end_of_storage指向整块连续空间(含备用空间)的尾端,结构如下所示: templateAlloc=alloc&a...

2019-04-18 14:41:55

阅读数 37

评论数 0

c++从源文件到可执行文件的步骤详解

编译与链接有四个过程: (1)预处理 (2)编译 (3)汇编 (4)链接 (1)预处理 源文件和头文件被预处理成一个.i文件、(-E表示只进行预处理) g++ -E hello.cpp -o hello.i -E:意味着只执行到预编译,直接输出预编译结果。 预处理过程...

2019-04-18 11:27:05

阅读数 68

评论数 0

ARP地址解析协议详解

ARP地址解析协议详解 网络层的ARP协议完成IP地址与物理地址的映射。首先,每台主机都会在自己的ARP缓冲区中建立一个ARP缓存表,以表示IP地址和MAC地址的对应关系。当源主机需要将一个数据包发送到目的主机时,会首先检查自己ARP缓存表中是否存在该IP地址对应的MAC地址:如果有,就直接...

2019-04-17 17:25:26

阅读数 102

评论数 0

Linux多线程服务端编程(muduo):条件变量的使用原则以及(spurious wakeup)虚假唤醒

条件变量的使用方式: 对于wair端: (1)必须与mutex一起使用,该布尔表达式的读写受此mutex保护。 (2)在mutex已上锁的时候才能调用wait()。 (3)把判断布尔条件和wait()放到while循环中。 // wait端 pthread_mutex_lock(mtx...

2019-04-17 15:04:01

阅读数 65

评论数 0

Linux多线程服务端编程(muduo):互斥锁(mutex)的使用原则

单独使用互斥锁时,可以遵循一些原则: (1)用RAII手法(资源获取时就是初始化,在构造函数中创建对象,在析构函数中销毁对象)封装mutex的创建,销毁,加锁,解锁。 (2)只用非递归的mutex(即不可重入的mutex,当一个线程已获得锁时,其他线程阻塞的时候,不允许该线程获得锁两次。) ...

2019-04-17 11:32:42

阅读数 18

评论数 0

Linux多线程服务端编程(muduo):线程同步的四个原则

按重要性排列: (1)首要原则是尽量最低限度地共享对象,减少需要同步的场合。一个对象能不暴露给别的线程就不要暴露;如果要暴露,优先考虑immutable对象;实在不行才暴露可以修改的对象,并用同步措施来充分保护它。 (2)其次是使用高级的并发编程机构,如TaskQueue,Producer_C...

2019-04-17 11:16:40

阅读数 42

评论数 0

Linux多线程服务端编程(muduo):什么叫线程安全

线程安全应该满足的条件: (1)多个线程同时访问时,其表现出正确额行为 (2)无论操作系统如何调度这些线程,无论这些线程的执行顺序如何交织 (3)调用端代码无需额外的同步或其他协调动作。 整理: 多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需...

2019-04-17 10:53:18

阅读数 27

评论数 0

STL之hash_table的底层实现

转载自:http://www.cnblogs.com/JackyTecblog/archive/2012/08/12/2634764.html Hashtable在C++的STL里占据着比较重要的一席之地。其中的hash_set、hash_map、hash_multiset、hash_mul...

2019-04-17 10:25:06

阅读数 40

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭