查漏补缺
文章平均质量分 78
BIG_GENERAL_DD
好好学习,天天向上.
展开
-
面试题1:OS或者编译器怎么识别是全局变量还是局部变量
OS或者编译器怎么识别是全局变量还是局部变量. 操作系统内根本不关心你是什么变量,它只管代理运行程序,也就是进程,负责这些进程之间的调度,不过如果要说操作系统本身也是进程,那倒可以理解;编译器最终会把程序编译成可执行文件,就是对应的一条一条汇编指令,在程序运行过程中按照定义,就可以有不同的寻址方式,这个就是汇编的内容了,其实不同类型的变量就是寻址方式的不同,说到底还是存储位置不同。另...原创 2018-07-31 21:24:21 · 1400 阅读 · 0 评论 -
UML类图与类的关系详解
在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。基本概念类图(Class Diagram): 类图是面向对象系统建模中最常用转载 2017-10-17 13:01:34 · 174 阅读 · 0 评论 -
C++/C中防止头文件的重复包含的解决办法及区别
方式一: #ifndef __SOMEFILE_H__//或写为#if !define __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 声明、定义语句 #endif 方式二: #pragma once ... ... // 声明、定义语句为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifnd转载 2017-10-17 10:34:40 · 630 阅读 · 0 评论 -
stdcall,cdecl,fastcall区别与联系
(1) _stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。 WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题:#define WINAPI _stdcall 按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如。转载 2017-10-17 09:55:13 · 488 阅读 · 0 评论 -
STL---heap概述,make_heap,sort_heap,pop_heap,push_heap
heap并不属于STL容器组件,它分为 max heap 和min heap,在缺省情况下,max-heap是优先队列(priority queue)的底层实现机制。而这个实现机制中的max-heap实际上是以一个vector表现的完全二叉树(complete binary tree)。二叉堆(binary heap)就是i一种完全二叉树。也即是。整棵二叉树除了最底层的叶节点以外,转载 2017-11-01 10:05:40 · 243 阅读 · 0 评论 -
C语言中的字符串拷贝函数strcpy和内存拷贝函数memcpy的区别与实现
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符'\0'。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src); memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此转载 2017-10-18 22:57:16 · 565 阅读 · 0 评论 -
主机序和网络序
不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种:1. Little endian:将低序字节存储在起始地址 2. Big endian:将高序字节存储在起始地址 LE little-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第转载 2017-10-18 22:02:37 · 9098 阅读 · 0 评论 -
链表面试题精讲
本篇博客是关于七月算法 ,曹鹏老师所讲的关于链表面试题部分的习题,加上自己的补充与笔记!链表简介链表:一个元素和下一个元素靠指针连接(松散),不能O(1)直接访问到第k个元素n 单(向)链表 :只能找到下一个节点n 双(向)链表:能找到上一个和下一个节点n 循环(单、双)链表:首尾相接 形成环Java : LinkedListC++ : STL listC :原创 2017-09-12 21:15:19 · 436 阅读 · 0 评论 -
字符串面试题精讲
字符串String字符串简介面试题总体分析一些例题例1 0-1串交换排序例2 字符的替换和复制例3 交换星号例4 子串变位词例5 单词(字符串)翻转总结-通常作为字符数组。-Java:string内置类型,不可更改,要更改的话可考虑转StringBuffer,StringBuilder,char[]之类-C++:std:stri原创 2017-09-12 20:05:58 · 441 阅读 · 0 评论 -
图论面试题精讲
本篇博客是关于七月算法 ,曹鹏老师所讲的关于图论部分的习题,加上自己的补充与笔记!//给定二叉树的前序和中序遍历,构造二叉树 leetcode105、106 //二叉树每个节点有一个整数,返回和最大的路径 leetcode124//二叉树最小深度 ,注意空子树 leetcode111//判断二叉树平衡 leetcode110 //最大深度 lee原创 2017-09-11 20:26:56 · 1443 阅读 · 0 评论 -
二叉树转换为链表
一、问题描述输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。查阅了相关内容,基本了解了这个问题的解析方法与思想。二叉搜索树转换为有序双向链表DList BSTreeToList(BSTree tree){ if(tree == NULL) r原创 2017-09-12 10:37:41 · 1774 阅读 · 0 评论 -
输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数, 使其和等于 m
编程求解:输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.思路:从小到大 依次拼凑 后面选的数字 必须比前面大 保证不重复如: n = 4 m = 81 2 3 4 超过8 去掉最后一个数 导数第二个数加一1 2 4 小于8 最后一个数等于 4 去掉最后一个数 导数第二个数原创 2017-09-02 18:47:27 · 1488 阅读 · 0 评论 -
面试必备之海量数据处理
一、海量数据处理所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/trie树。针对空间,无非就一个办法:大而化小,分而治之(hash映射)。转载 2017-09-11 13:25:08 · 415 阅读 · 0 评论 -
C/C++学习(9)dynamic_cast<>强制转换
dynamic_cast,分为:1.子类向基类的向上转型(Up Cast)2.基类向子类的向下转型(Down Cast)其中向上转型不需要借助任何特殊的方法,只需用将子类的指针或引用赋给基类的指针或引用即可,dynamic_cast向上转型其总是肯定成功的。而向下转换时要特别注意:dynamic_cast操作符,将基类类型的指针或引用安全的转换为派生转载 2017-05-05 22:21:34 · 477 阅读 · 0 评论 -
C语言系列(六)结构体和联合体
结构体在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包含的变量或数组};123结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个栗子:struct stu{ char *name;转载 2017-10-26 09:03:42 · 360 阅读 · 0 评论 -
为什么要进行内存对齐以及对齐规则
为什么要进行内存对齐以及对齐规则#includeusing namespace std;struct A{ char a; int b; short c;};struct B{ short c; char a; int b;};int main(){ cout<<sizeof(A)<<endl; co转载 2017-10-26 09:10:31 · 657 阅读 · 0 评论 -
为什么要进行内存对齐以及对齐规则
#includeusing namespace std;struct A{ char a; int b; short c;};struct B{ short c; char a; int b;};int main(){ cout<<sizeof(A)<<endl; cout<<sizeof(B)<<endl; r转载 2017-12-14 20:23:49 · 512 阅读 · 0 评论 -
详解测试驱动开发 Test Driven Development(TDD)
{TDD的目标}Clean Code That Works这句话的含义是,事实上只做两件事情:让代码奏效(Work)和让代码洁净(Clean),前者是把事情做对,后者是把事情做好。 想试用TDD的人们,请遵循下面的步骤:编写TestCase --< 实现TestCase --< 重构 (确定范围和目标) (增加...转载 2018-07-20 18:34:15 · 3846 阅读 · 0 评论 -
C# 单元测试相关内容
工作中为了对写出的接口进行单元测试,特地学习了相关的内容,主要链接如下:C#,单元测试入门C# 单元测试,带你快速入门使用VS2013进行C#程序的单元测试VS2015 C#的单元测试如何在VS中进行单元测试Visual Studio 2017 优雅单元测试体验VS2017的Live Unit Testing...转载 2018-07-05 15:02:11 · 515 阅读 · 0 评论 -
开发常见问题1、循环中删除列表中的元素
循环中删除列表中的元素在讨论这个问题之前,先考虑以下代码的输出结果:ArrayList<String> list = new ArrayList<String>(Arrays.asList("a","b","c","d"));for(int i=0;i<list.size();i++){ list.remove(i);}System.out.pr原创 2018-06-30 14:55:41 · 354 阅读 · 0 评论 -
数据库表中捞取字段时,另外生成一个自增序列
关于查询数据时,添加一个自增序列号的列的问题点击打开链接——————————————————————————————自己在写接口的时候,需要从 日志表中捞取5个数据,另外再生成一个自增序列,例子如下:如下是表格MySql语句:SELECT row_number()over(order by OLObjId) AS Id, ...原创 2018-06-29 15:13:40 · 436 阅读 · 0 评论 -
mysql 中使用 where 1=1和 1=1 的作用
Mysql中where 1=1 和count(0) 使用小技巧mysql中使用 where 1=1和 1=1 的作用转载 2018-06-01 16:10:30 · 20701 阅读 · 0 评论 -
关于indexOf、 substring、split、contains的用法
public class StringTest{protected StringTest(){}public static void main ( String[] args ){String s = "Call me Accp.";System.out.println( s + "的长度为:" + s.length());System.out.println("字符串的第一个字符为:...转载 2018-06-22 15:44:39 · 747 阅读 · 0 评论 -
C#高级参数out的使用
C#高级参数out的使用C#中有三个高级参数,分别是out,ref,params。本文章中先来介绍out参数的使用。out,用于在方法中返回多余值。(可以理解为让一个方法返回不同的类型值)我们通过例子来理解例子的功能:用一个方法,判断用户是否登陆成功(布尔类型),同时提示用户是否登陆成功(字符串类型) using System;using System.Collections.Gener...转载 2018-05-31 18:44:46 · 533 阅读 · 0 评论 -
C#中的using 关键字
using 关键字有两个主要用途:作为指令:用于为命名空间创建别名或导入在其他命名空间中定义的类型。 请参阅 using 指令。作为语句:用于定义一个范围,在此范围的末尾将释放对象。 请参阅 using 语句。此外,使用 using 静态指令可定义一种类型,在未指定类型名称的情况下即可访问该类型的静态成员。using 语句(C# 参考)using 语句(C# 参考)————————————————...原创 2018-05-30 11:17:57 · 1832 阅读 · 0 评论 -
浏览器输入一个域名地址,浏览器的执行过程
临近毕业了没事,最近在徐汇这边找了一家公司实习,闲着没事,又把以前的TCP/IP相关的东西拿过来看看。想起了泛亚技术研发中心的一道面试题:向浏览器输入www.baidu.com这个域名后,把具体过程分析一遍。我当时好像只说了关于一个ARP协议,其它的蒙圈了,对于这类基础知识掌握能力不行啊。。。于是又把以前初学TCP时,写的一些博客拿过来看。OSI模型与TCP模型点击打开原创 2018-01-10 09:42:57 · 1519 阅读 · 0 评论 -
map和set异同
节选一: MAP的节点是一对数据. SET的节点是一个数据.Map使用关键值Key来唯一标识每一个成员 map可以重复。set是集合 都属于关联容器 只不过,map的形式 map mymap; set的形式 set myset;转载 2017-12-14 22:41:52 · 285 阅读 · 0 评论 -
C++中重载和覆盖的区别
一. 重载(overload)1. 重载指的是函数具有的不同的参数列表,而函数名相同的函数。重载要求参数列表必须不同,比如参数的类型不同、参数的个数不同、参数的顺序不同。2. 如果仅仅是函数的返回值不同是没办法重载的,因为重载要求参数列表必须不同。3. 程序是根据参数列表来确定具体要调用哪个函数的4. 看下面几个例子void Fun(int a);v转载 2017-12-14 22:17:28 · 2551 阅读 · 0 评论 -
面向对象与面向过程的区别
学习C++一般都会思考这个问题,c++里的++到底比C语言多了什么东西,有什么不一样呢??首先一个问题就是类与对象,那么我们就必须要理解面向对象和面向过程的区别,经过查阅资料以及网上很多大神们的讲解,我小小总结一下,我喜欢用实例来讲解,所以比较的时候多以实例为主:1.面向对象和面向过程的区别:面向过程:procedure oriented programming POP转载 2017-12-14 21:49:47 · 306 阅读 · 0 评论 -
堆和栈的区别
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回 事,分配方式倒是类似于链表。转载 2017-12-14 20:54:40 · 153 阅读 · 0 评论 -
C++中四种类型转换
转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。1、reinterpret_cast(expression) reinterpret_cast'reinterpret_cast'转换一个指针为其它类型的指针。它也允许从一个指针转换为整数类型。反之亦然。这个操作符能够在非相关的类型之间转换。操作结果只是简单的从一个指针到别的指针的值的二进制拷贝。在类型之间指原创 2017-08-31 10:51:18 · 292 阅读 · 0 评论 -
数据库与SQL语言 知识点总结
数据库知识数据库系统DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统。一个典型的数据库系统包括数据库、硬件、软件(应用程序)和数据库管理员(DBA)4个部分。根据计算机的系统结构,DBS分成集中式、客户/服务式、并行式、分布式。 E-R模型 数据库逻辑结构设计中,将E-R模型转换为关系模型应遵循相关原则。对于3原创 2017-08-31 09:20:21 · 926 阅读 · 0 评论 -
strlen()函数详解
头文件:#include strlen()函数用来计算字符串的长度,其原型为: unsigned int strlen (char *s);strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。【返回值】返回字符串s 的字符数。注意一下字符数组,例如 char str[100] = "http://see.xidian.edu.转载 2017-05-05 21:21:20 · 24058 阅读 · 0 评论 -
最短路径
最短路径之-Floyed-Warshall算法//使用Floyed-Warshall能够求两点之间最短路径 或者指定一个点到其余各个顶点的最短路径//但是注意,此方法不能解决“负权回路”的图 #includeint main() { int e[10][10],k,i,j,n,m,t1,t2,t3; int inf=99999999; //正无穷定义为999999原创 2017-04-22 18:36:46 · 244 阅读 · 0 评论 -
关于typedef的用法总结
[-目录(?)]基本定义用途一与define的区别用途二减少错误用途三 直观简洁用途四平台无关性用途五掩饰复合类型用途六代码简化用途七typedef 和存储类关键字storage class specifier在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多。typedef与#define有些相似,其实是不同的,特别是在一些转载 2017-03-30 20:29:46 · 269 阅读 · 0 评论 -
memset()函数及其作用
1. memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度. 这个函数在socket中多用于清空数组.如:原型是memset(buffer, 0,转载 2017-03-30 20:26:42 · 283 阅读 · 0 评论 -
C++中strcmp的头文件问题
C++中strcmp的头文件问题今天在写程序时遇到的一个问题 #include #include using std::string; int main() { char str[STEL]; while (scanf("%s", str) && strcmp(str, "end")) { printf(转载 2017-03-25 14:14:56 · 30712 阅读 · 4 评论 -
int、long、long long取值范围
unsigned int 0~4294967295 int -2147483648~2147483647 unsigned long 0~4294967295long -2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-92转载 2017-03-19 19:25:17 · 389 阅读 · 0 评论 -
C++容器的insert()函数有以下三种用法: 最终*it=val;
C++容器的insert()函数有以下三种用法: 最终*it=val;C++容器的insert()函数有以下三种用法: 最终*it=val;//用法1:在指定位置it前“插入”值为val的元素,返回指向这个元素的迭代器,iterator insert( iterator it, const TYPE &val ); //用法2:在指定位置it前“插入”num个值为val的元素转载 2017-03-25 14:32:01 · 4083 阅读 · 0 评论 -
交换函数swap的三种实现方法
交换函数swap的三种实现方法本文采用三种方式实现两个数之间的交换,分别是①借助辅助变量temp的swap函数,②采用加减法的swap函数 ,③使用异或运算的swap函数。现在直奔主题:1、借助辅助变量temp的swap函数I、引用类型形参[cpp] view plain copyvoid swap(int &a,转载 2017-03-25 14:30:05 · 1497 阅读 · 0 评论