复习总结
文章平均质量分 86
一支兰州
这个作者很懒,什么都没留下…
展开
-
c --副作用和顺序点
C 语言中,术语副作用是指对数据对象或者文件的修改。例如以下语句[cpp] view plaincopyvar = 99; 的副作用是把 var 的值修改成 99。对表达式求值也可能产生副作用,例如:[cpp] view plaincopyse = 100转载 2015-10-22 20:44:15 · 513 阅读 · 0 评论 -
共享内存
目录(?)[+]共享内存 共享内存是被多个进程共享的一部分物理内存。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。原理图如下:共享内存的实现分为两个步骤:一、 创建共享内存,使用shmget函数。二、 映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shma转载 2016-03-24 16:19:54 · 312 阅读 · 0 评论 -
73条日常Linux shell命令汇总,总有一条你需要!
1.检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && echo "open"2.让进程转入后台:Ctrl + z3、将进程转到前台:fg4.产生随机的十六进制数,其中n是字符数:openssl rand -hex n5.在当前shell里执行一个文件里的命令:source转载 2016-03-25 09:43:54 · 1155 阅读 · 0 评论 -
Linux Shell 文本处理工具集锦
本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;如果有更为复杂的任务需求,还是考虑python吧;find 文件查找转载 2016-03-27 11:24:45 · 282 阅读 · 0 评论 -
inline和宏的优点和缺点
优点:1)inline定义的内联函数,函数代码被放入符号表中,在使用时进行替换(像宏一样展开),效率很高。2)类的内联函数也是函数。编绎器在调用一个内联函数,首先会检查参数问题,保证调用正确,像对待真正函数一样,消除了隐患及局限性。3)inline可以作为类的成员函数,刀可以使用所在类的保护成员及私有成员。缺点:内联函数以复制为代价,活动产函数开销1转载 2016-03-28 16:14:50 · 3303 阅读 · 0 评论 -
A星算法
A星寻路算法介绍你是否在做一款游戏的时候想创造一些怪兽或者游戏主角,让它们移动到特定的位置,避开墙壁和障碍物呢?如果是的话,请看这篇教程,我们会展示如何使用A星寻路算法来实现它!在网上已经有很多篇关于A星寻路算法的文章,但是大部分都是提供给已经了解基本原理的高级开发者的。本篇教程将从最基本的原理讲起。我们会一步步讲解A星寻路算法,幷配有很多图解和例子。不管你使用的是什么编程转载 2016-03-28 17:10:07 · 835 阅读 · 0 评论 -
字节对齐与结构体大小
说明:结构体的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。这些问题在平时编程的时候也确实不怎么用到,但在一些笔试面试题目中出是常常出现,对sizeof我们将在另一篇文章中总结,这篇文章我们只总结结构体的sizeof,报着不到黄河心不死的决心,终于完成了总结,也算是小有收获,拿出来于大家分享,如果有什么错误或者没有理解透的地方还望能得到提点,也不转载 2016-03-28 17:26:01 · 452 阅读 · 0 评论 -
求字符串中最长无重复字符的子串
求字符串中最长无重复字符的子串题目:求一个字符串中最长的没有重复字符的子串。方法一:穷举法,使用2重外循环遍历所有的区间,用2重内循环检验子串是否符合“无重复字符”这一要求。其中外层循环i、j 遍历所有的下标,m、n是内层循环,检查区间[i,j]是否符合要求。空间复杂度是O(1),时间复杂度O(N^4)。//O(N^4)的时间复杂度int max_unique转载 2016-03-28 18:47:20 · 446 阅读 · 0 评论 -
逆波兰表达式
将一个中序表达式转化成为逆波兰表达式的方法其实很简单,也是一个成型的算法。通过逆波兰表达式求一个计算式子的值,也是很简单的,只要遇到过会用就行了。1、将一个中序表达式转化成为逆波兰表达式。 首先维护的是两个栈,我们这里暂且称为S1和S2,S1中的结果最后存的就是逆波兰表达式,S2中将用于暂时存放运算符并且在最终形成逆波兰表达式的时候,该栈是会清空的。下面我们看看怎样具体转载 2016-03-29 09:00:57 · 418 阅读 · 0 评论 -
c++ const类成员函数
我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误。例如,[cpp] view plain copy const char blank = ‘’; blank = ‘\n’; // 错误 面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据转载 2016-02-29 11:33:12 · 356 阅读 · 0 评论 -
二叉树三种遍历算法递归和非递归实现
//二叉树 三种遍历方式的 递归非递归实现#include#includeusing namespace std;typedef struct BiTreeNode{ int data; BiTreeNode *left; BiTreeNode *right; BiTreeNode() {转载 2016-02-28 10:49:01 · 1984 阅读 · 1 评论 -
排序算法的总结
直接插入排序:假设部分序列有序,然后将无序的部分循环插入到已有序的序列中。对于随即顺序的序列的时间复杂度:O(N^2),对于基本有序的序列时间复杂度:O(N)。空间复杂度:O(1)。代码如下:/*Straight Insertion Sort**时间复杂度:O(n^2) 最好:O(n) **空间复杂度:O(n)*/void straight_insert_sort(int *nums,原创 2015-09-18 20:12:42 · 539 阅读 · 1 评论 -
十道海量数据面试题
第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率转载 2016-03-05 20:01:13 · 548 阅读 · 0 评论 -
c结构体对齐深刻理解
最近在实习的公司,作为新人和其他的新人做了一个新人技术交流会,主要是关于C的一些基础知识,包括了C的编译,链接,指针,数组,字符串,结构体等,以及一些项目相关的知识,总的来说技术交流会还是很有用的,大家可以相互讨论,这样更容易理解。好了,言归正传,C中对于结构体的使用可以说是非常的频繁和必要的,正确理解结构体的内存对齐原则,对于用好C是很有必要的(小子在实际项目中确实遇到过一个结构体内存对齐引起的转载 2016-03-18 17:06:06 · 3094 阅读 · 0 评论 -
全排列的递归与非递归算法实现
全排列在近几年各大网络公司的笔试中出现的比较频繁首先来看看题目是如何要求的(百度迅雷校招笔试题)。用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列,如 abc 的全排列: abc, acb, bca, dac, cab, cba一、 递归版本1、算法简述简单地说:就是第一个数分别以后面的数进行交转载 2016-03-19 21:06:58 · 1211 阅读 · 0 评论 -
C++中placement new操作符
placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下:void *operator new( size_t, void *p ) throw() { return p; } 首先我们区分下几个容易混淆的关键词:new、转载 2016-04-02 17:18:10 · 482 阅读 · 0 评论 -
c++基类和派生类
派生类的继承方式总结:继承方式说明public基类的public和protected的成员被派生类继承后,保持原来的状态private基类的public和protected的成员被派生类继承后,变成派生类的private成员protected 基类的public和protected的成员被派生类继承后,变成派生类的protected成转载 2016-04-04 17:14:12 · 406 阅读 · 0 评论 -
进程间通信-管道(PIPE)和有名管道(FIFO)
前面我们学习了一下进程,我们知道多,进程间的地址空间相对独立。进程与进程间不能像线程间通过全局变量通信。 如果想进程间通信,就需要其他机制。 常用的进程间通信方式有这几种A.传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)B.System v IPC对象共享内存(share转载 2016-03-22 18:52:34 · 7511 阅读 · 0 评论 -
二叉树的深度和广度优先搜索
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。如右图所示的转载 2016-02-28 10:46:52 · 2234 阅读 · 0 评论 -
为什么要三次握手
TCP 三次握手TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。 2. 服务器收到客户端发送过来的SYN报文后,向客户转载 2016-03-22 16:25:01 · 434 阅读 · 0 评论