Snoopy

点个关注吧,亲


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Top K问题

发表于 2019-06-12
1、直接全部排序(只适用于内存够的情况) 当数据量较小的情况下,内存中可以容纳所有数据。则最简单也是最容易想到的方法是将数据全部排序,然后取排序后的数据中的前K个。 这种方法对数据量比较敏感,当数据量较大的情况下,内存不能完全容纳全部数据,这种方法便不适应了。即使内存能够满足要求,该方法将全部数据都 ...
阅读全文 »

迭代器

发表于 2019-06-11
迭代器Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由ite ...
阅读全文 »

非阻塞IO

发表于 2019-06-10
首先,我们知道,socket() 调用创建指定系列和指定类型的套接字。 s = socket(family, type, protocol); socket将返回套接字句柄。套接字句柄即为文件描述符s,而一般情况下文件描述符默认都是阻塞的。为了满足某些时候的需要,我们使用fcntl函数来对其进行非阻 ...
阅读全文 »

类中成员内存分布

发表于 2019-06-06
static修饰符static修饰成员变量对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当做是类的成员,无论这个类被定义了多少个,静态数据成员都只有一份拷贝,为该类型的所有对象所共享(包括其派生类)。所以,静态数据成员的值对每个对象都是一样的,它的值可以更新。 因为静态数据成员在全局 ...
阅读全文 »

程序内存管理

发表于 2019-06-05
程序内存管理:一个程序本质上都是由BSS段、data段、text段三个组成的。可以看到一个可执行程序在存储(没有调入内存)时分为代码段、数据区和未初始化数据区三部分。 BSS段(未初始化数据区):通常用来存放程序中未初始化的全局变量和静态变量的一块内存区域。BSS段属于静态分配,程序结束后静态变量 ...
阅读全文 »

进程间通信

发表于 2019-06-04
进程间通信主要包括管道、系统IPC(包括消息队列、信号量、信号、共享内存等)、以及套接字socket。 管道:管道主要包括无名管道和命名管道:管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信 1.1 普通管道PIPE:1)它是半双工的(即数 ...
阅读全文 »

多态

发表于 2019-06-03
多态的概念通俗来说,就是多种形态,具体而言就是为了完成某一个行为,当不同的对象去完成时会产生不同的状态。 举个栗子:同样是去景区游玩,但是在买票时却不一样——普通人买的时全价票,学生买的是半价票,军人是优先购票。 多态的定义及实现多态定义的构成条件多态是在不同继承关系的类对象,去调用同一函数,产生了 ...
阅读全文 »

继承

发表于 2019-06-02
继承的概念:继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用 ...
阅读全文 »

覆盖与隐藏

发表于 2019-06-01
题目链接:https://www.nowcoder.com/questionTerminal/f29ec891b0284259a922d0dae964ef3a 来源:牛客网 下面程序的输出是() 1234567891011121314151617181920212223242526272829303 ...
阅读全文 »

fork与vfork的区别

发表于 2019-05-31
fork的基础知识:fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: #include <sys/types.h> #include <unistd.h> pid_t fork(void); ​ 成功调用fork( )会创建一个新的进程,它几乎 ...
阅读全文 »
123…8
李峰

李峰

这是一个弱鸡的博客,如果有问题请大家原谅并提醒我。3Q!

72 日志
5 标签


浏览量
访客量
113.5k 总字数
RSS
GitHub
© 2019 李峰
由 Hexo 强力驱动
|
本站访客数 人 本站总访问量 次
0%