随笔分类 -  C/C++

摘要:1、MySQL安装及简单设置 (1)安装:在OSX系统下,可以使用万能的“brew install”命令来进行安装:brew isntall mysql(默认安装最新版的MySQL) (2)启动:brew services start mysql (3)修改密码:update user set au 阅读全文
posted @ 2018-03-17 22:13 落雷 阅读(2718) 评论(0) 推荐(0) 编辑
摘要:对于STL去重,可以使用<algorithm>中提供的unique()函数。 unique()函数用于去除相邻元素中的重复元素(所以去重前需要对vector进行排序),只留下一个。返回去重后的尾地址。 unique()并不会删除vector中的元素,只是将重复元素替换为之后的元素,vector的大小 阅读全文
posted @ 2018-01-02 16:25 落雷 阅读(3965) 评论(0) 推荐(0) 编辑
摘要:1、算法概述 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法或散列算法。 1.1、CRC8、CRC16、CRC32 CRC(Cyclic Redun 阅读全文
posted @ 2017-12-03 22:14 落雷 阅读(4725) 评论(0) 推荐(0) 编辑
摘要:一、简介 Snappy(旧称:Zippy)是Google基于LZ77的思路用C++语言编写的快速数据压缩与解压程序库,并在2011年开源。其目标并非最大压缩率或与其他压缩程序的兼容性,而是非常高的速度和合理的压缩率。使用一个运行在64位模式下的酷睿i7处理器的单个核心,压缩速度250 MB/s,解压 阅读全文
posted @ 2017-11-26 20:53 落雷 阅读(5074) 评论(0) 推荐(0) 编辑
摘要:C/C++编写的程序在分配内存时,通常划分为四个区域: 栈区(stack):存放函数的参数值、局部变量的值等,通常由编译器自动分配和释放 堆区(heap):动态分配的内存空间,由程序员分配和释放。若程序员忘记释放,将造成内存泄漏 数据区: 常量区:存放常量 全局/静态区:存放全局变量和静态变量 代码 阅读全文
posted @ 2017-11-06 21:43 落雷 阅读(166) 评论(0) 推荐(0) 编辑
摘要:1、strcpy() 原型:char *strcpy(char *dst,const char *src) 功能:将以src为首地址的字符串复制到以dst为首地址的字符串,包括'\0'结束符,返回dst地址。要求:src和dst所指内存区域不可以重叠且dst必须有足够的空间来容纳src的字符串,若d 阅读全文
posted @ 2017-11-04 22:25 落雷 阅读(20409) 评论(0) 推荐(4) 编辑
摘要:1、工厂方法模式中的角色和职责 抽象工厂角色:工厂方法模式的核心,任何工厂类都必须实现这个接口。 工厂角色:具体工厂类是抽象工厂的一个实现,负责实例化产品对象。 抽象产品角色:工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 具体产品角色:工厂方法模式所创建的具体实例对象。 阅读全文
posted @ 2017-10-22 22:21 落雷 阅读(178) 评论(0) 推荐(0) 编辑
摘要:指定面向对象设计原则的目的:高内聚,低耦合 阅读全文
posted @ 2017-10-22 21:48 落雷 阅读(184) 评论(0) 推荐(0) 编辑
摘要:1、简单工厂模式中的角色和职责: 工厂角色:简单工厂模式的核心,负责实现创建所有的实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象 抽象产品角色:简单工厂模式所创建的所有对象的父类,负责描述所有实例所共有的公共接口 具体产品角色:简单工厂模式所创建的具体实例对象 2、简单工厂模式的优缺点 阅读全文
posted @ 2017-10-22 21:34 落雷 阅读(189) 评论(0) 推荐(0) 编辑
摘要:软件设计模式是由GoF(Gang of Four)将模式的概念引入软件工程领域后诞生的。软件模式与具体的应用领域无关。 GoF提出的设计模式有23个,大体可分为三类: (1)创建型模式:如何创建对象 (2)结构型模式:如何实现类或对象的组合 (3)行为型模式:累活对象怎样交互以及怎样分配职责 除了G 阅读全文
posted @ 2017-10-22 15:59 落雷 阅读(138) 评论(0) 推荐(0) 编辑
摘要:二叉树是一种特殊的树结构:每个节点最多有两个子节点。 二叉树的性质: (1)二叉树第i层的节点数目最多为 2{i-1} (i≥1)。 (2)深度为k的二叉树至多有2{k}-1个结点(k≥1)。 (3)包含n个结点的二叉树的高度至少为log2 (n+1)。 (4)在任意一棵二叉树中,若终端结点的个数为 阅读全文
posted @ 2017-10-13 11:37 落雷 阅读(167) 评论(0) 推荐(0) 编辑
摘要:STL:是Standard Template Library的简称,中文译为标准模板库,是由惠普实验室开发的一系列软件的统称,现为C++的一部分,可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms 阅读全文
posted @ 2017-10-11 17:55 落雷 阅读(248) 评论(0) 推荐(0) 编辑
摘要:排序算法大致可分为两类: 比较排序,时间复杂度一般在O(nlogn) ~ O(n^2)之间,主要有冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序等 非比较排序,时间复杂度可达到O(n),主要有计数排序、基数排序等 本文主要介绍常用的其中比较排序。 1、冒泡排序 说明:冒泡排序是一 阅读全文
posted @ 2017-10-10 21:45 落雷 阅读(246) 评论(0) 推荐(0) 编辑
摘要:C++是Bjarne Stroustrup博士于1982年,在C语言的基础上引入并扩充了面向对象的概念后发明的一种新的程序语言。就与C语言的渊源而言,C++可以说是C语言的超集,它兼容C的一切(可能是小可才疏学浅,并没有发现C可以但C++不可以的东西)。 C语言面向过程,侧重于算法和数据结构;C++ 阅读全文
posted @ 2017-10-10 20:49 落雷 阅读(203) 评论(0) 推荐(0) 编辑
摘要:简单的链表练习。。。。。。 实现:myList.h myList.cpp 阅读全文
posted @ 2017-10-08 21:34 落雷 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1、说明:使用位运算进行加运算是面试过程中经常遇到的;减乘除均可以基于位运算加来实现。 减:加第二个数的取反 乘:n个第一个数相加 除:第一个数最多可以减去多少个被减数 2、位运算符 &:按位与,两个相应的二进位数为1,该位的结果为 1 否则为 0 |:按位或,两个相应的二进位中只要有一个为 1,该 阅读全文
posted @ 2017-10-08 16:19 落雷 阅读(276) 评论(0) 推荐(0) 编辑
摘要:二分查找法(Binary Search):在有序数组中查找某一特定元素位置的搜索算法 实现: 阅读全文
posted @ 2017-10-04 20:38 落雷 阅读(176) 评论(0) 推荐(0) 编辑
摘要:1、strstr()实现 原型:char * strstr(const char * str1, const char * str2) 说明:判断str2是否为str1的子串,如果是则返回str2第一次出现的位置,否则返回NULL 实现: 2、strcmp实现 原型:int strcmp(const 阅读全文
posted @ 2017-09-21 18:23 落雷 阅读(323) 评论(0) 推荐(0) 编辑
摘要:在日常的工作过程中,时常会遇到需要计时的要求,不同场合需要的计时精度也不同,这里列举几个常用的计时函数,以备不时之需。 1、time() 头文件:time.h 原型:time_t time(time_t *tloc) 精度: <1s 精度级别:低 示例: 2、clock() 头文件:time.h 原 阅读全文
posted @ 2017-09-19 16:31 落雷 阅读(1825) 评论(0) 推荐(0) 编辑
摘要:Linux下实现多线程文件复制,使用<pthread.h>提供的函数: int pthread_create(pthread_t *thread,const pthread_attr_t *restrict attr,void* (*start_routine)(void*),void *restr 阅读全文
posted @ 2017-09-11 20:42 落雷 阅读(2766) 评论(2) 推荐(0) 编辑

点击右上角即可分享
微信分享提示