C/C++
文章平均质量分 50
freepenix
熟练掌握C语言、C++;熟练掌握汇编语言,熟悉反汇编;
熟悉java、verilog、VHDL编程。
熟练掌握计算机组成原理;熟悉计算机网络结构。
熟练掌握SQL数据库。
对linux命令行有一定了解。
目前正在自学 计算机网络安全方面的知识。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
堆与栈的区别
出处:http://blog.youkuaiyun.com/sky04/article/details/3865877一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分:1. 栈区(stack)——由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。栈区(stack)—— 由编译器自动分配释放 ,存放函数的参数值,转载 2015-08-27 10:20:09 · 320 阅读 · 0 评论 -
二叉排序树链表实现
二叉排序数的(递归)定义:1、若左子树非空,则左子树所有节点的值均小于它的根节点;2、若右子树非空,则右子树所有节点的值均大于于它的根节点;3、左右子树也分别为二叉排序树。如图:链表实现(比较简单):#include #include typedef struct node{ int data; struct node * lchild; str转载 2015-09-10 17:49:47 · 1430 阅读 · 0 评论 -
二叉排序树数组实现
定义left[], right[]作为标记,记录但前节点是哪个点的左(右)孩子比如我们要对 4,3, 8,6,1。排序排好序后的二叉树如图:把这个过程在纸上用笔走一遍,你就会一目了然。#include #include #define N 1000int l[N], r[N], key[N], flag, root;void insert(int index,转载 2015-09-10 17:54:52 · 1596 阅读 · 0 评论 -
堆排序实现思想
面试时遇到了堆排序,不是很清楚,记录下思想,备用堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。大根堆排序的基本思想 ① 先将初始文件R[1..n]建成一个大根堆,此堆为初始的无序区 ② 再将关键字最大的记录R[1](即堆顶)和无序区的最后一个记录R[n]交换原创 2015-09-10 18:06:58 · 437 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2015-09-12 22:21:00 · 311 阅读 · 0 评论 -
stl map底层之红黑树插入步骤详解与代码实现
转载请注明出处:http://blog.youkuaiyun.com/mxway/article/details/29216199本篇文章并没有详细的讲解红黑树各方面的知识,只是以图形的方式对红黑树插入节点需要进行调整的过程进行的解释。最近在看stl源码剖析,看到map底层红黑树的实现。为了加深对于红黑树的理解就自己动手写了红黑树插入的实现。关于红黑树插入节点后破坏红黑树性质的几种情况,可以在转载 2015-09-13 10:33:20 · 569 阅读 · 0 评论 -
unresolved external symbol错误及其解决方法
昨天某笔试遇到一个问题:unresolved external symbol属于什么阶段的错误,答案为链接阶段,但是本人并不是很清楚这个错误,所以找资料整合了下类似错误提示:nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadexnafxcwd.lib(thrdco原创 2015-09-20 21:22:47 · 105326 阅读 · 4 评论 -
后缀表达式
以前不注意的知识点,考到了才发现自己忘干净了,,, 赶紧记住! 不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行,不再考虑运算符的优先规则 如:(2 + 1) * 3 , 即2 1 + 3 *原创 2015-09-20 21:41:54 · 347 阅读 · 0 评论 -
二叉树前序、中序、后序遍历相互求法
今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。首先,我们看看前序、中序、后序遍历的特性: 前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子树转载 2015-09-20 21:28:25 · 369 阅读 · 0 评论 -
C++ 与 java 访问级别的不同
学习过程中发现了java与C++的访问级别不尽相同,特写出,加强记忆。在Java语言中有4种访问修饰符:package(默认)、private、public和protected.1。package是默认的保护模式,又叫做包访问,没有任何修饰符时就采用这种保护模式。包访问允许域和方法被同一个包内任何类的任何方法访问。(包内访问)2。private标识的访问模式,表示私有的域和原创 2015-09-02 11:07:08 · 485 阅读 · 0 评论 -
C++ 静态数据成员能不能受private控制符的作用
学习C++过程中,遇到一道问题:下面对静态数据成员的描述中,正确的是:A.可以在类内初始化B.不能被类的对象调用C.不能受private修饰符的作用D.可以直接用类名调用本以为是很简单的一道问题,类中变量,受private操作符作用应该是没有质疑的,但是我所看到的书中(人民邮电出版社《C和C++程序员面试秘笈》,感觉还是挺好的~),答案C是正确的(当然还有D,D没有争议)原创 2015-08-31 17:09:35 · 12006 阅读 · 17 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有释转载 2015-08-27 10:13:51 · 275 阅读 · 0 评论 -
c++ assert() 使用方法
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#inclu转载 2015-08-29 15:14:28 · 315 阅读 · 0 评论 -
strftime()函数将时间格式化
原地址:http://blog.163.com/result_2205/blog/static/139819450201021762339822/我们可以使用strftime()函数将时间格式化为我们想要的格式。它的原型如下:size_t strftime( char *strDest, size_t maxsize, const转载 2015-08-30 11:42:12 · 802 阅读 · 0 评论 -
C++16个常用面试题
1. C中static有什么作用 (1)隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性,故使用static在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。 (2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和stat转载 2015-08-29 15:18:13 · 499 阅读 · 0 评论 -
strcat();字符串拼接函数
自百度百科原型extern char *strcat(char *dest,char *src);用法#include 在C++中,则存在于头文件中。功能把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。说明src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向des转载 2015-08-30 14:09:49 · 1046 阅读 · 0 评论 -
C++ STL--stack/queue 的使用方法
转载地址:http://blog.163.com/jackie_howe/blog/static/199491347201111447143421、stackstack 模板类的定义在头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如转载 2015-08-29 11:33:21 · 330 阅读 · 0 评论 -
C++ 什么时候只能用intialization list而不能用assignment
1.当类中含有const、reference成员变量,对象成员;基类的构造函数都需要初始化。2.当基类有带参构造,子类就应当声明一个将参数传递给基类构造函数的途径。3.当基类派生子类对象时,就要对基类数据成员等初始化。示例代码:(1)#includeusing namespace std;class A {private: const int a转载 2015-08-31 16:36:17 · 1445 阅读 · 0 评论 -
C++四种强制类型转换运算符
C++有四种强制类型转换符,分别是dynamic_cast,const_cast,static_cast,reinterpret_cast。其中dynamic_cast与运行时类型转换密切相关,在这里我们先介绍dynamic_cast,其他三种在后面介绍。1、dynamic_cast运算符该转换符用于将一个指向派生类的基类指针或引用转换为派生类的指针或引用。转载 2015-08-31 09:53:23 · 563 阅读 · 0 评论 -
算法复习之:最大子串和问题
为了找工作,复习算法中!看到动态规划,把以前的示例拿出来敲一遍,巩固一下 问题: 给定由n个整数(可能为负整数)组成的序列A1,A2,A3,...,An,求该序列的连续子段的和的最大值。当所有整数均为负整数时定义其最大子段和为0例如 {-4, 11,-2, 13,-7,-3,12} 的最大子段和为22代码如下:#include using原创 2015-10-15 17:41:25 · 373 阅读 · 0 评论
分享