知识综合
Dream_yz
没有最好,只有更好!
展开
-
Linux下C语言实现获取当前时间
C语言获取当前时间简介在工作中,经常涉及到获取当前时间,用于写日志,基于此,今特意利用C语言写一个获取时间函数,用于后面用到时,能够及时查到。获取当前时间,要用到具体实现程序实现#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h&am原创 2018-08-08 12:17:39 · 6210 阅读 · 0 评论 -
队列和栈简单实现
数据结构队列队列是一种访问受限的线性表。队列的元素只能从表的一端插入,另一端删除(即队头插入,队尾删除)。 队列的实现中,主要涉及到初始化,入队,出队,判断队空,判断队满,遍历队列等操作。下面是对队列的简单实现。/***环形队列实现*****/// 头文件class MyQueue{public: MyQueue(int queueCapacity); // 初始化原创 2016-06-19 12:13:40 · 1116 阅读 · 0 评论 -
C++中运算符总结
优先级运算符名称与含义使用形式结合方向1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表).成员选择(对象)对象.成员名->成员选择(指原创 2016-07-11 20:36:34 · 4626 阅读 · 0 评论 -
谷歌浏览器快捷键
快捷键功能Ctrl + N打开新窗口Ctrl + 链接网址在新标签页中打开链接Shift + 链接网站在新窗口中打开链接Alt + F4关闭当前窗口Ctrl + T重新打开上次关闭的标签页将链接拖到标签页内原创 2016-06-05 21:04:16 · 690 阅读 · 0 评论 -
C++书籍
1)C/C++方面《C专家编程》《C++ Primer》《C++标准程序库》《深度探索C++对象模型》《Effective C++》《STL源码剖析》《More Effective C++》《C++反汇编与逆向分析技术》2)数据结构与算法《算法导论》《编程之美》3)数学相关《数学之美》4)操作系统相关《深入理解计算系统》5)网络相关原创 2016-03-25 20:44:16 · 507 阅读 · 0 评论 -
正则表达式学习
正则表达式:使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在文本编辑中,它可以用来检索、替换某个匹配的文本。正则表达式可以用形式化语言理论的方式进行表述。它右常量和算子组成,分别表示指示字符串的集合和在这些集合上的运算。具体如下:1) 空集:φ指示集合φ。2) 空串:ε指示集合{ε}3) 文字字符:在∑中的a指示集合{a}相关运算如下:1) 串接:RS指原创 2016-04-21 20:39:16 · 650 阅读 · 0 评论 -
机器学习算法_第1篇
决策树介绍决策树基本思想:以信息熵为度量构造一颗熵值下降最快的树,到叶子节点处的熵值为0,此时每个叶子节点的实例都属于同一类。它是一种自顶向下的递归方法。优点易于理解和实现;数据的准备往往简单或者不必要;能够同时处理数据型和常规型属性;是一个白盒模型;易于通过静态测试来对模型进行评测;在相对较短的时间内能够对大型数据源做出可行且效果良好的结果方法ID3 :信息增益最大准则C4.5:信原创 2016-05-28 14:28:08 · 884 阅读 · 0 评论 -
智能指针实现
智能指针使用简介智能指针是一个类,它对普通指针进行封装,使智能指针对象具有普通指针类型一样的操作。它能够在复制对象时,使副本和原对象都指向同一存储区域,通过副本或原对象改变所指值时,通过另一个对象访问的值也发生改变。智能指针能够对内存进行自动管理,避免出现悬垂指针情况。C/C++语言中,在创建对象是进行内存分配,使用完毕后需要释放内存,如果出现不正确操作内存,则可能导致内存泄露。而智能指针能够解决原创 2016-05-28 12:31:26 · 959 阅读 · 0 评论 -
面向对象设计
面向对象设计三要素封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操做,对不可信的进行信息隐藏。继承:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。继承可以通过继承和组合实现。实现继承:使用基类的属性和方法而无需额外编码的能力;接口继承:仅使用属性和方法的名称,但是子类必须提供实现的能力;可视继承:指子窗口(类)使用基窗体(类)的外观原创 2016-04-12 19:55:07 · 568 阅读 · 0 评论 -
了解程序编译、运行过程
了解程序编译、运行过程计算机系统是由硬件和软件系统组成的,它们共同工作来运行应用程序。程序编译系统中所有的信息——包括磁盘文件、存储器中的程序、存储器中存放的用户数据以及网络上传送的数据,都是由一串位表示的。区分不同数据对象的唯一方法是读到这些数据对象时的上下文。如,在不同的上下文中,一个同样的字节序列可能表示一个整数、浮点数、字符串或者机器指令。一个程序的生命周期是从一个高级C语言程序(能够被人读原创 2016-07-29 23:08:43 · 2674 阅读 · 0 评论 -
内存管理机制
内存机制C中内存机制 1) 栈:位于函数内的局部变量(包括函数实参),由编译器负责分配释放,函数结束,栈变量失效; 2) 堆:由程序员用malloc/calloc/realloc分配,free释放。如果程序员忘记free了,则会造成内存泄露,程序结束时该片内存会由操作系统回收; 3) 全局区/静态区:全局变量和静态变量存放区,程序一经编译好,该区域便存在。在C语言中初始化的全局原创 2016-08-15 22:44:14 · 738 阅读 · 0 评论 -
双缓冲区
双缓冲区今天看大规模分布式存储系统,看到双缓冲这一部分内容,加之之前项目中应用到双缓冲思想,故总结双缓冲知识如下,其中程序是参看stackoverflow的,具体网址找不到了,故未标注在参看文献中。简介 双缓冲区广泛应用于生产者/消费者模型。它是两个缓冲区。这两个缓冲区,总是一个用于生产者,另一个用于消费者。当两个缓冲区都操作完,再进行一次切换,先前被生产者写入的被消费者读取,先前消费者读取的转原创 2016-08-27 23:15:21 · 3333 阅读 · 0 评论 -
C++11新特性--Lambda表达式
C++11新特性–Lambda表达式Lambda表达式功能:定义并创建匿名函数对象,以简化编程工作。Lambda语法形式[函数对象参数] (操作符重载函数参数) mutable或exception声明->返回值类型 {函数体}Lambda语法分析函数对象参数:表示Lambda开始,必须存在,不能省略。它传递给编译器自动生成函数对象类的构造函数。它只能使用定义在Lambd...原创 2018-08-10 09:48:52 · 1211 阅读 · 0 评论 -
C++11中__cplusplus特性
宏__cplusplus使用宏__cplusplus主要解决C/C++混合编程问题,一般用法如下:#ifdef __cplusplusextern "C" {#endif…#ifdef __cplusplus}#endifextern “C”可以抑制C++对函数名、变量名进行名称重整,故编译出的C目标文件和C++目标文件名的函数名、变量名都是相同的,链接器能可靠地对两种类...原创 2018-08-01 07:35:57 · 12896 阅读 · 0 评论 -
C++11新特性列表
C++新特性列表__cplusplus宏(__cplusplus macro) 对齐支持(alignment support) 通用属性(general attribute) 原子操作(atomic operation) auto类型推导(初始化类型推导)(auto (type deduction from 18nitialize)) C99特性(C99) 强类型枚举(e...原创 2018-07-31 22:26:04 · 419 阅读 · 0 评论 -
汽车摇号系统设计
编程题:设计一个汽车摇号系统,每个月放出n个指标,参号人数不固定,要求一个人6年后摇中的概率是当前的2倍。原创 2018-03-11 22:20:57 · 2218 阅读 · 0 评论 -
SQL笔试面试题总结
SQL笔试面试题总结1)数据库表建立复合索引tab_index(“name”, “age”),下面那些语句能用上索引?(C) A)select *from table where age=18 and name=’test’; B)select *from table where name=’test’ and age=18; C)select *from table where n原创 2016-11-19 12:26:15 · 11714 阅读 · 1 评论 -
2016年8月到9月参加IT校招总结
2016年8月13日,华为面试1面主要是项目相关,因每个人项目不同,在此不做过多解释;2面主要问了本科学校,期望工作地点,期望薪资,为什么想进华为,本科做过什么项目,项目都几个人,对ARM嵌入式了解多少等。2016年8月15日,百度一面涉及到的面试问题如下: strcpy(char *strDst, const char *strSrc)实现 有一个m*n的方格,其中方格中某些路的交叉点是原创 2016-10-21 23:24:13 · 1452 阅读 · 0 评论 -
面试常见编程题目
相关问题总结:二分查找程序中,思想简单,但是要注意边界条件。#include #include using namespace std;// 非递归版本int Binary_search1(vectorint> num, int target){ int size = num.size(); if (size 0) return -1;原创 2016-09-26 09:58:03 · 3704 阅读 · 0 评论 -
IT笔试输入输出处理总结
互联网笔试,经常被输入输出搞蒙,最后不能AC,故总结与数组相关输入处理。1)第一种情况:输入n个数,存放在数组中#include <iostream>#include <vector>using namespace std;int main(){ int N; // 输入总个数 int temp; while (cin >> N) { ve原创 2016-09-17 23:17:47 · 2175 阅读 · 0 评论 -
排序算法总结与实现
各种排序算法实现今天吃饭听同学说,百度面试,当场让写归并算法跪了,后天面试华为,今天晚上啥也不干,将所有排序算法复习一遍。排序简介排序即是将一个数据元素(记录)的任意序列,重新排列成一个按关键字有序的序列的过程。 排序按照记录所在位置分为:内部排序和外部排序。内部排序指待排序记录存放在内存;外部排序指排序过程中需对外存进行访问的排序。 依据排序的原则,排序又分为以下:插入排序、交换排序、选择排原创 2016-08-11 22:12:16 · 1008 阅读 · 0 评论 -
char[],char *,string之间转换
char[],char *,string之间转换char []与char *之间转换char []转char *:直接进行赋值即可// char[] 转char *char str[] = "lala";char *str1 = str;cout << str1 << endl;char *转char[]:字符拷贝实现,不能进行赋值操作// char *转换为char []const c原创 2016-04-15 19:53:23 · 65991 阅读 · 3 评论 -
Windows下多线程相关函数
Windows下多线程相关函数1)创建线程 CreateThreadWINBASEAPI_Ret_maybenull_HANDLEWINAPICreateThread( _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUT原创 2016-04-14 10:30:37 · 1090 阅读 · 0 评论 -
Boost库学习
Boost库学习Boost库是一套开放源代码、高度可移植的C++库。Boost库主要包括一下几个大类:字符串及文本处理、容器、迭代子、算法、函数对象和高阶编程、泛型编程、模板元编程、并发编程、数学相关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项。字符串处理1)应用:字符串——数值(boost/lexical_cast.hpp)C语言解决方法是使用atoi,atod,ato原创 2016-03-10 21:13:56 · 5561 阅读 · 0 评论 -
数据库备份了解
数据库备份和容错知识点冷备份与热备份冷备份冷备份发生在数据库已经正常关闭情况下,当正常关闭时会提供给我们一个完整的数据库。其实质:将关键性文件拷贝到另外的位置。对Oracle而言,冷备份是最快、最安全的方法。其优缺点如下:优点:1)非常快速的备份方法(只需拷贝文件);2)容易归档(简单拷贝);3)容易恢复到某个时间点(将文件拷贝回去);4)能与归档方法相结合,做数据库“最佳状态”的恢复;5)低度原创 2016-02-29 21:37:33 · 742 阅读 · 0 评论 -
有符号与无符号讨论
#includeusing namespace std;int main(){int a = -1;unsigned int b = 1;if(a > b){cout}else{cout}char a1= -1;unsigned char b1 = 1;if(a1 > b1){cout} else{cout翻译 2015-09-01 13:22:42 · 672 阅读 · 0 评论 -
C语言高效编程
本博客为本人在学习相关知识总结。C语言高效编程技巧1)以时间换空间方法使用指针和宏函数。宏函数与函数区别:宏函数占用大量的空间,而函数占用时间。函数调用时是要使用系统的栈来保存数据,如果编译器里有栈检查选项,一般在函数头会嵌入一个汇编语句对当前栈进行检查;同时CPU也在函数调用时保存和回复当前的现场,进行压栈和弹栈操作,故函数调用占用CPU时间。而宏函数仅仅作为预先写好的代码嵌入到当前原创 2016-03-09 20:39:16 · 703 阅读 · 0 评论 -
智能指针初探
智能指针智能指针实质:一个对象,行为表现的却像一个指针。它与普通指针的区别在于智能指针实际上是对普通指针加了一层封装机制,其目的是使得智能指针可以方便的管理一个对象的生命期。智能指针主要用于确保程序不存在内存和资源泄露且是异常安全的。智能指针对于RAII(获取资源即初始化)编程很重要。其目的是确保资源获取与对象初始化同时发生,从而能够创建该对象的所有资源并在某行代码中准备就绪。RAII主要原则:将任原创 2016-02-29 21:35:06 · 797 阅读 · 0 评论 -
git相关知识学习
下面内容为本人看Pro Git书的总结,如有类同,纯属巧合。git中的命令主要分为两类:底层命令(Plumbing)和高层命令(Porcelain)。在新目录或已有目录内执行git init时,Git会创建一个.git目录,几乎所有Git存储和操作的内容都位于该目录下。该目录下的内容介绍主要如下:HEAD:指向当前分支branches:分支信息。config:包函了项目特有的配原创 2016-02-21 16:05:59 · 649 阅读 · 0 评论 -
操作系统(死锁)
死锁:一组进程中,每个进程都无限等待被该组进程中另一个进程所占有的资源,从而永远无法得到资源的状态。死锁发生会浪费大量的系统资源,甚至导致系统崩溃。参与死锁的所有进程都在等待资源,并使当前系统中所有进程的子集。死锁产生的原因:资源数量有限、锁和信号量错误使用 产生死锁的必要条件:1)互斥使用(资源独占);2)占有且等待(请求和保持,部分分配);3)不可抢占(不可剥夺);4)循环等待原创 2016-02-21 18:43:32 · 1030 阅读 · 0 评论 -
操作系统(I/O系统)
本博客为本人自己总结相关知识写的,如有雷同,纯属巧合。I/O系统结构分类如下:外存设备控制器:光盘、磁带、磁盘;输出设备控制器:CRT、激光打印机、行式打印机、点阵打印机、色彩打印机、音箱;过程控制器:过程控制I/O设备;通信控制器:数据通信设备;输入设备控制器:键盘、鼠标器、语音输入、光笔、扫描仪、图像输入设备、其他。I/O特点:1)I/O性能经常成为系统性能的瓶颈;原创 2016-02-21 22:19:55 · 3773 阅读 · 0 评论 -
软件版本
软件版本由于下载软件时,经常涉及到一些版本的选择,但对于alpha和beta等版本一致没详解了解过。今天查了相关信息,打算对其进行一些总结。Release版本Release为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,一边用户更好地使用。Debug版本Dubug为调试版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上是最优的,以便用户很好地使用。Rel原创 2016-03-31 21:44:13 · 435 阅读 · 0 评论 -
C语言知识总结
相同点:都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名区别:1)指针是一个实体,而引用仅是个别名; 2)引用使用时无需解引用(*),指针需要解引用; 3)引用只能在定义时被初始化一次,之后不可变;指针可以改变 4)引用没有const,指针有const 5)引原创 2016-03-10 22:43:44 · 528 阅读 · 0 评论 -
C++模板总结
C++模板模板定义:模板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性。模板分类:函数模板和类模板。函数模板针对参数类型不同的函数;类模板仅针对数据成员和成员函数类型不同的类。使用模板目的:让程序员编写与类型无关的代码。注意:模板的声明或定义只能在全局,命名空间或类范围内进行。即不能在局部范围,函数内进行,如不能在main函数中声明或定义一个模板原创 2016-03-09 22:32:11 · 7240 阅读 · 1 评论 -
Swap函数实现
Swap函数基本实现1)一般实现,借助临时变量// 引用实现Swap1(int &x, int &y){ int temp; temp = x; x = y; y = temp;}// 调用int x = 5;int y = 6;Swap1(x, y);// 指针实现Swap1(int *x, int *y){ int temp;原创 2016-04-04 15:21:04 · 12686 阅读 · 0 评论 -
求两个数的最大公约数
两个数的最大公约数辗转反除法对应公式:f(x, y) = f(y, x%y),其中x>=y>0。程序实现如下:int gcd1(int x, int y){ if (x < y) return gcd1(y, x); return (!y) ? x : gcd1(y, x % y);}大整数减法因辗转反除法利用取模运算,计算开销大,故转换为大整数减法实现。对应公原创 2016-04-13 23:00:38 · 655 阅读 · 0 评论 -
多线程
多线程简介提起线程,首先了解的应该是进程,下面对进程和线程进行简要介绍。进程:包含程序指令和相关资源的集合。每个进程和其他进程一起参与调度,竞争CPU,内存等系统资源。每次进程切换,都存在进程资源的保存和恢复动作,称为上下文切换。进程引入解决了多用户支持问题。但进程也存在问题,如进程频繁切换引起的额外开销可能会严重影响系统性能。对进程来说,系统资源是独占的,每次切换,这些独立资源都需要切换。多线程原创 2016-04-13 22:32:58 · 508 阅读 · 0 评论 -
malloc/free与new/delete异同点
malloc/free与new/delete异同点相同点malloc/free与new/delete都可以用于申请动态内存和释放内存,他们申请的空间都在堆上分配。不同点1)操作对象不同malloc/free是C++/C语言的标准库文件,new/delete是C++的运算符;对非内部数据对象,malloc/free无法满足动态对象要求。对象在创建时要自动执行构造函数,对象消亡之前要自动执行析构函数原创 2016-04-12 18:33:50 · 2361 阅读 · 0 评论 -
变量定义与const变量定义
变量定义与const变量定义一般变量1)一个整型数 int a2)一个指向整型数的指针 int *a3)一个指向指针的指针,它指向的指针是一个整型数int **a4)一个有10个整型数的数组 int a[10]5)一个有10个指针的数组,该指针指向一个整型数 int *a[10]6)一个指向有10个整型数数组的指针 int (*a)[10]7)一个指向函数的指针,该函数有一个整型参数并返回一个整型原创 2016-03-26 23:06:06 · 3909 阅读 · 0 评论 -
strcpy和strncat函数
strcpy和strncat函数实现重点关注:函数的返回值为char *;函数所串参数中,注意const的使用;注意字符串操作后,最后’\0’的填充;size_t类型的使用,它依据系统的不同,类型不同,32为系统为unsigned int,64位系统为unsigned int 32。具体实现:#include <iostream> // 引入cout输出流 #include <str原创 2016-03-26 21:47:08 · 704 阅读 · 0 评论