
知识积累
长风o
本博客为编程学习记录之用,同时方便自己总结和他人借鉴。如有不当之处请联系本人。
展开
-
关于二叉树的前序中序后序遍历
遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。前序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树后序遍历:左子树->右子树->根节点例如:求下面树的三种遍历 前序遍历:abdefgc中序遍历:debgfac后序遍历:edgfbca原创 2017-02-12 21:43:35 · 438 阅读 · 0 评论 -
C++的try、catch、throw异常
一、简单的例子首先通过一个简单的例子来熟悉C++ 的 try/catch/throw:1 #include //包含头文件2 #include3 double fuc(double x, double y) //定义函数4 {5转载 2017-04-05 22:11:37 · 427 阅读 · 0 评论 -
位操作基础篇之位操作全面总结
Title: 位操作基础篇之位操作全面总结Author: MoreWindowsE-mail: morewindows@126.comKeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳转载 2017-04-18 19:18:11 · 10510 阅读 · 0 评论 -
字符串的全排列和组合算法(递归非递归)
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *转载 2017-04-16 15:30:36 · 966 阅读 · 0 评论 -
STL之五:set/multiset用法详解
集合使用set或multiset之前,必须加入头文件Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。sets和multiset内部以平衡二叉树实现1. 常用函数1) 构造函数和析构函数set c:创建空集合,不包含任何元素set c(op):以op为排序准则,产生一个空转载 2017-04-16 17:24:58 · 370 阅读 · 0 评论 -
CPP读取文件速度比较
[cpp] view plain copy探寻C++最快的读取文件的方案 計算機技術 Add comments7,388 views 在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句转载 2017-05-06 19:36:21 · 2110 阅读 · 1 评论 -
参数的常量引用const int &a和引用 int &a的区别
首先介绍一下为什么我们要使用引用形式进行参数传递。我们写一个函数 void fun(int a,int b),这样的函数调用时是不会改变参数的值的,在函数中也就是以一个局部变量的形式存在,当函数结束时,变量a,b的生命周期也就结束了。而对于 void fun(int &a,int &b),这种形式进行参数传递,其实是一种指针的形式,如果在函数内我们改变了a,b的值,当函数结束后,原来的值也原创 2017-05-18 11:19:19 · 8386 阅读 · 0 评论 -
vector::clear(),容器vector的clear函数详解。
最近经常用到vector容器,发现它的clear()函数有点意思,经过验证之后进行一下总结。clear()函数的调用方式是,vector temp(50);//定义了50个datatype大小的空间。temp.clear();作用:将会清空temp中的所有元素,包括temp开辟的空间(size),但是capacity会保留,即不可以以temp[1]这种形式赋初值,只能通过temp.push原创 2017-05-18 12:56:35 · 33024 阅读 · 2 评论 -
如何获得毫秒和纳秒级种子c++
对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。 在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了。另转载 2017-06-13 22:17:30 · 1272 阅读 · 0 评论 -
多态的四种实现
多态分为两种:通用的多态和特定的多态。两者的区别是前者对工作的类型不加限制,允许对不同类型的值执行相同的代码;后者只对有限数量的类型有效,而且对不同类型的值可能要执行不同的代码。 通用的多态又分为参数多态(parametric)和包含多态(inclusion);特定的多态分为过载多态(overloading)和强制多态(coercion)。 强制多态:编译程序通过语义操作,把操转载 2017-08-30 10:25:51 · 1891 阅读 · 0 评论 -
PYTHON爬虫——谷歌(Google)图片关键词爬取
转载请注明出处: http://blog.youkuaiyun.com/Hk_john/article/details/78455889 给出完整代码:(请需要的自行下载,有问题请留言) http://download.youkuaiyun.com/download/hk_john/10105643 有时间会写一下百度图片和谷歌图片的python爬虫博客,先占行 google图片爬虫连接: 百度图片原创 2017-11-20 14:09:42 · 12214 阅读 · 0 评论 -
C语言字符串操作总结大全(超详细)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 st转载 2017-04-04 21:03:54 · 401 阅读 · 0 评论 -
c++ STL list容器
1.关于list容器list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每个节点有三个域:前驱元素指针域、数据域和后继元素指针域。前驱元素指针域保存了前驱元素的首地转载 2017-03-26 21:16:24 · 367 阅读 · 0 评论 -
c++中 动态联编,静态联编和虚函数
在C++中,联编是指一个计算机程序的不同部分彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。 1. 静态联编静态联编是指联编工作在编译阶段完成的,这种联编过程是在程序运行之前完成的,又称为早期联编。要实现静态联编,在编译阶段就必须确定程序中的操作调用(如函数调用)与执行该操作代码间的关系,确定这种关系称为束定,在编译时的束定称为静态束定。静转载 2017-02-23 08:50:30 · 1041 阅读 · 0 评论 -
动态内存分配
1、当你定义了一个指针,而且要往里面写数据时,必须要动态分配内存给他。2、动态分配的内存在堆上,你有权利决定什么时候将他释放掉。3、动态分配的内存请记得一定要释放掉,不然容易引起内存泄露。1,new 分配内存通用格式是:类型名 * 指针 = new 类型名;如 int * pi = new int;类型可以是基本数据类型、结构体原创 2017-02-15 15:27:08 · 497 阅读 · 0 评论 -
图的邻接矩阵和邻接表的比较
图的存储结构主要分两种,一种是邻接矩阵,一种是邻接表。 1.邻接矩阵 图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中的边或弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 看一个实例,下图左就是一个无向图。 从上面可以看出,无向图的边数组是一个对称矩阵。所谓对称矩阵就是n阶矩阵的元满足ai转载 2017-03-23 14:00:44 · 1171 阅读 · 0 评论 -
邻接表无向图 C++详解
转载请注明出处:http://www.cnblogs.com/skywang12345/邻接表无向图的介绍邻接表无向图是指通过邻接表表示的无向图。上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边。上图右边的矩阵是G1在内转载 2017-03-23 14:02:10 · 4238 阅读 · 1 评论 -
c++编写无向图 使用容器Vector编写邻接表法
对于无向图的编写,传统方法有两种:1、邻接矩阵法(适合边数多的无向图)。2、邻接表法(适合边数较少的无向图)。在我转载的两篇无向图编写的博客中已经详细介绍过了。但是使用邻接表法时总感觉编程起来特别麻烦,并且不直观,调用时需要通过指针的循环不方便。这里给出一种新的思路,使用容器Vector来编写邻接表vector > 其中的类型type根据无原创 2017-03-23 14:15:17 · 1315 阅读 · 2 评论 -
c++ Vector创建二维数组 及其行列最大值读取
Vector创建二维数组:vector > matrix(10);其中的(10)不可省略表示行数;对于已经创建好的matrix,我们可以用如下的函数来得到其行列数:cout具体程序如下:#include#includeusing namespace std;int main(){ vector > matrix(10); for(int i=原创 2017-03-23 15:16:09 · 13121 阅读 · 3 评论 -
队列queue中的常用函数 c++ 容器
转载 :http://www.cnblogs.com/xuning/p/3321733.html[C++基础]队列中的常用函数在C++中只要#include即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序)1. push2. pop3. size4. empty5. front6. back接下来逐一举例说明:1.转载 2017-03-23 21:26:18 · 841 阅读 · 0 评论 -
移位运算为什么比乘法除法快
从效率上看,使用移位指令有更高的效率,因为移位指令占2个机器周期,而乘除法指令占4个机器周期。从硬件上看,移位对硬件更容易实现,所以会用移位,移一位就乘2,这种乘法当然考虑移位了。两个64位的数按位与 和 一个64位的数右移32位 哪个操作快些?专家解读:移位快,只有一次寻址,逻辑运算和写操作,按位与需要两次寻址,一次逻辑运算和一次写。原创 2017-04-10 10:04:49 · 16610 阅读 · 9 评论 -
int main(int argc,char* argv[])详解,以及与int main()有什么区别
K&R C 上5.10 命令行参数 中介绍的int main(int argc,char* argv[ ])在 d:\ 编写 程序,并命名为 c.c #includeint main(int argc, char ** argv){ int i; for (i=0; i printf("Argument %d is %s.\n",转载 2017-03-15 17:22:11 · 2580 阅读 · 0 评论 -
vector函数用法全解
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vector 还有一定要加上using name转载 2017-03-15 19:11:17 · 3854 阅读 · 1 评论 -
字节对齐的规则总结
一、什么是字节对齐,为什么要对齐?现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地...转载 2018-08-07 20:53:57 · 756 阅读 · 0 评论