![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 51
Gease_lcj
linux.c/c++/unix/python/测试自动化
展开
-
linux下安装压缩包工具
linux中解压缩并安装.tar.gz后缀的文件**********************************************************************************************************************************tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾...原创 2018-08-08 14:13:01 · 3232 阅读 · 0 评论 -
三种obj文件
obj分为(粘贴)可重定位文件:其中包含有适合于其它目标文件的链接来创建一个可执行的或者共享的目标文件的代码和数据。.2 )共享的目标文件:这种文件存放了适合于在两种上下文里链接的代码和数据第一种是链接程序可把它与其它可重定位文件及共享的目标文件一起处理来创建另一个目标文件; 第二种是动态链接程序将它与另一个可执行文件及其它的共享目标文件结合到一起,创建一个进程映象。3 )可执行文件:它包含了一个...原创 2018-03-12 21:34:04 · 1734 阅读 · 1 评论 -
快速排序实例
void sort(int * a,int left,int right){ if(left> = right)/ *如果左边索引大于或者等于右边的索引就代表已经整理完成一个组的* / { 返回; } int i = left; int j = right; int key = a [left]; whil...原创 2018-03-18 17:40:13 · 358 阅读 · 0 评论 -
常用排序算法总结!面试必备!
通常我们所说的排序算法往往指的的英文内部排序算法,即数据记录在内存中进行排序。 排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn)〜O(n ^ 2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 一种另的英文非比较排序,时间复杂度可以达到为O(n),主要有:计数排序,基数排序,桶排序等。 这里我们来探讨一下常用的比较排序算法,比较非排序算法...转载 2018-03-18 16:47:36 · 244 阅读 · 0 评论 -
malloc底层原理实质
malloc函数的实质体现在:它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。到最后,空闲...原创 2018-03-17 15:18:40 · 414 阅读 · 0 评论 -
stl.list/stl.vector/stl.deque区别联系
双端队列(deque)是一种支持向两端高效地插入数据、支持随机访问的容器。******************************************************************************************************deque是双端连续性vector 是单端连续性list 顺序离散****************************...原创 2018-03-17 15:08:36 · 190 阅读 · 0 评论 -
设计模式之策略模式(c++)
概述:每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 而策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换“ 。类图与实例:上下文(应用场景):如图1所示,需...转载 2018-03-10 10:18:15 · 177 阅读 · 0 评论 -
C语言中chdir()使用
相关函数:getcwd,chroot 头文件:#include <unistd.h> 定义函数:int chdir(const char * path); 函数说明:chdir()用户将当前的工作目录改变成以参数路径所指的目录。返回值执行成功则返回0,失败返回-1,errno为错误代码。范例#include <unistd.h> main(){ chdir(“/ t...转载 2018-02-22 15:11:40 · 23846 阅读 · 5 评论 -
lseek函数
lseek的函数用于设置文件偏移量。每个打开的文件都有一个与其相关联的“当前文件偏移量”(当前文件偏移量)。它通常是一个非负整数,用以度量从文件开始处计算的字节数。通常,读写操作都从当前文件偏移量处开始,并使偏移量增加所读写的字节数。按系统默认的情况,当打开一个文件时,除非制定O_APPEND选项,否则该偏移量被设置为0。#include <unistd.h> off_t lseek...转载 2018-02-22 15:02:52 · 635 阅读 · 0 评论 -
c/c++ 头文件 定义
对于大家,肯定会经常见到如是这样的代码#ifndef LOG_H#define LOG_H #endif ********************************************************************************我记得有一次我们的硬件老师给我们说这是库文件???当时我就一脸震惊???怎么和我记忆中的不一样???0.0问了周围人都说没注意,今...原创 2018-02-13 14:19:04 · 1449 阅读 · 0 评论 -
编译器预定义宏
经常在大型工程可以见到如是代码#if_MSC_VER #define snprintf _snprintf #endif譬如:小编我在使用SNPRINTF函数时候,头文件什么都添加了,可是总是显示未定义。添加了之后就没问题了,这是因为可以使编译器自主的选择LIB库,从而选择定义,然后咱们使用就没问题了。symbian sdk预定义宏:symbian平台,定义“__SYMBIAN32_”...原创 2018-02-13 14:06:03 · 337 阅读 · 0 评论 -
构造函数 析构函数与虚函数
出处:http://blog.csdn.net/linpengbin/article/details/50810584我们都知道构造函数不能为虚函数,而基类的析构函数一般都要定义为虚函数。今天重新复习了一下,特在此记载,以便查找。构造函数不能为虚函数主要有以下两点1,必要性分析: 。当定义派生类对象时,它会主动依次调用构造函数,顺序为基类的构造函数- >一级派生类构造函数- >二级派...转载 2018-03-19 21:14:57 · 254 阅读 · 0 评论 -
C++中的函数重载中为什么不考虑返回值类型?
函数重载的条件是:C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,即函数的参数列表不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。*****************************************************************...原创 2018-03-13 21:14:47 · 838 阅读 · 0 评论 -
windows下的gitbash安装配置
下载git Windows客户端git客户端下载地址:https://git-scm.com/downloads我这里下载的是Git-2.14.0-64-bit.exe版本下载TortoiseGitTortoiseGit客户端下载地址:https://tortoisegit.org/downloadTortoiseGit客户端要下载两个,一个是安装程序,一个是中文语言包上述下载完成后,你会得到以下...转载 2018-05-15 16:02:52 · 2910 阅读 · 0 评论 -
转:kmp算法详解(最透彻的没有之一!)
给定一个主串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,此即串的模式匹配问题。Knuth-Morris-Pratt 算法(简称 KMP)是解决这一问题的常用算法之一,这个算法是由高德纳(Donald Ervin Knuth)和沃恩·普拉特在1974年构思,同年詹姆斯·H·莫里斯也独立地设计出该算法,最终三人于1977年联合发表。在继续下面的内容之前,有必要在这里介...转载 2018-04-24 21:01:08 · 2370 阅读 · 1 评论 -
堆与栈 详细区别
堆和栈的区别可以用如下的比喻来看出: 使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。 使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。1、内存分配方面: 堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结...转载 2018-04-03 14:09:37 · 243 阅读 · 0 评论 -
腾讯(后台实习)一面
秉承着写面经攒运气的态度!********************************************************************1.项目介绍(10分钟左右吧)2.http协议机制报头格式3.大小端判断方法?意义?4.字节对齐意义5.进程间详细具体通信6.c11特性7.vector开辟机制8.解决hash冲突机制方法9.web如何读取连接服务端***********...原创 2018-04-03 14:00:24 · 447 阅读 · 0 评论 -
hash冲突解决方法
一、冲突是如何产生的?哈希函数是指如何对关键字进行编址的规则,这里的关键字的范围很广,可视为无限集,如何保证无限集的原数据在编址的时候不会出现重复呢?规则本身无法实现这个目的。举一个例子,仍然用班级同学做比喻,现有如下同学数据张三,李四,王五,赵刚,吴露.....假如我们编址规则为取姓氏中姓的开头字母在字母表的相对位置作为地址,则会产生如下的哈希表位置字母姓名0a1b2c...10 L ...转载 2018-04-03 13:53:48 · 222 阅读 · 0 评论 -
string类基本操作(转自effective c++)
已知类String的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String &other); // 拷贝构造函数~ String(void); // 析构函数String & operate =(const String &oth...转载 2018-03-25 22:20:58 · 243 阅读 · 0 评论 -
超级简单的检验大小端的方法
#include{int main(int argc,char *argv[])int i = 0x12345678;char c = i;printf("%x \n",c);return 0;}如果是大端那就是8,小端就是1。原创 2018-03-25 20:45:55 · 622 阅读 · 2 评论 -
数据库-集群
现在,随着上网人数的激增,一些大型的网站开始使用数据库集群来提高数据库的可靠性和数据库的性能。那么在介绍数据库集群之前首先需要弄清楚几个问题。1.为什么要用数据库集群 (1)通过使用数据库集群可以使读写分离,提高数据库的系统性能。 大家都知道,mysql是支持分布式的。MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。...转载 2018-04-07 21:42:20 · 332 阅读 · 0 评论 -
c11标准新特性(面试第一坑)
C11相比C99的变化编辑1. 对齐处理操作符 alignof,函数 aligned_alloc(),以及 头文件 <stdalign.h>。见 7.15 节。2. _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。例子:_Noreturn void thrd_exit(int res);3. _Generic 关键词,有点儿类似于 ...转载 2018-03-24 17:32:18 · 2568 阅读 · 0 评论 -
C++的单例模式与线程安全单例模式(懒汉/饿汉)
1、教科书里的单例模式 我们都很清楚一个简单的单例模式该怎样去实现:构造函数声明为private或protect防止被外部函数实例化,内部保存一个private static的类指针保存唯一的实例,实例的动作由一个public的类方法代劳,该方法也返回单例类唯一的实例。 上代码: 1234五678910111213141516class singleton{protected: sin...转载 2018-03-20 10:58:31 · 246 阅读 · 0 评论 -
snprintf使用(vs版本)
**************************************************************原型:int snprintf(char *str, size_t size, const char *format, ...)作用:将可变个参数(...)按照format格式化成字符串,然后将其复制到str中(1) 如果格式化后的字符串长度 < size,则将此字符串...原创 2018-02-13 13:29:37 · 703 阅读 · 0 评论 -
strcpy/memcpy/memset/区别解释
strcpy原型:extern char *strcpy(char *dest,char *src);用法:#i nclude功能:把src所指由NULL结束的字符串复制到dest所指的数组中。说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。memcpy原型:extern void *memcpy(void *dest, void...原创 2018-02-11 14:56:22 · 225 阅读 · 0 评论 -
c++ 深浅拷贝、写时拷贝
浅拷贝:简单来说就是值拷贝,数据的拷贝。一般是默认构造函数深拷贝:地址的拷贝,数据之间相互独立写时拷贝:指用浅拷贝的方法拷贝其他对象,多个指针指向同一块空间,只有当对其中一个对象修改时,才会开辟一个新的空间给这个对象,和它原来指向同一空间的对象不会收到影响。一个对象的值改变与之相对应的也改变#include#include //一个检查内存泄露的工具vld using原创 2018-01-16 14:59:31 · 466 阅读 · 0 评论 -
c++ 各种不同含义的new和delete
new操作符(new operator)堆对象; new操作(operator new)***************************************************************************************当你使用 string *ps = new string (“hello linux”);你使用的是new操作符;它好比sizeo原创 2018-01-21 21:06:30 · 253 阅读 · 0 评论 -
弱引用与强引用
引用节省内存并不是真正的原因,真正的原因是有些对象如果被复制在现实中是不合事实的。为什么有引用计数 C++中存在两种语义:值语义(value sematics)和对象语义(object sematic),对象语义也可以叫做引用语义(reference sematics)。值语义,指的是对象的拷贝与原对象无关,就像拷贝int一样,C++的常用类型数据等都是值语义。对象语原创 2017-12-27 21:16:50 · 1497 阅读 · 0 评论 -
unix下利用creat函数与write函数 创建复制文件
文件描述符(file descriptor):1 标准输出;2 标准错误;0 标准输入fd = file descriptorexit(0) = 正常退出argc代表命令行输入参数的个数argv存储了所有的命令行参数#include#include#include#include#include#include#include#include#define BUFFER_原创 2017-10-08 15:06:41 · 536 阅读 · 0 评论 -
C语言各种数据类型取值范围
转自:http://blog.csdn.NET/mafuli007/article/details/7325510速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65536 (2 Bytes)int -2147483648 ~ +2147483647 (4转载 2017-08-05 21:03:27 · 619 阅读 · 0 评论 -
函数指针(披着羊皮指针的函数狼)与指针函数(披着函数羊皮的指针狼)
#include using namespace std; /*《1》:指针函数的本质就是一个函数,即一个带有指针的函数;其返回的为其首地址int *Get(int x); //指针函数声明形式 void main(void) { int num; cout<<"Please input the number between 0原创 2017-07-27 17:02:15 · 249 阅读 · 0 评论 -
经典算法之冒泡指针
//冒泡指针即,分别用两个指针指向数组中的两个数,如果第一个大于第二个,则交换。反之则不变,这样,第一遍后 最后一个值肯定为最大的,这样进行多次循环比较后 即满足从小到大的排列;若从大到小 则只要将条件改为第一个小于第二个人即可;#include using namespace std; void print(int* pData, int count){原创 2017-07-27 15:12:35 · 1007 阅读 · 0 评论 -
经典算法之快速排序
include using namespace std;int a[80];define n 6//宏定义,看个人喜好,也可直接定义一个数组void quicks(int a[],int left,int right) { if(left>=right) { return; } int first =left; int last原创 2017-07-27 15:07:29 · 293 阅读 · 0 评论 -
写出自己的一个 2048小游戏
2048函数 整体思想1.如何产生随机数? rand 、srand函数2.如何产生界面? 利用一些符号组合 加上 system函数 调节颜色尺寸等等3.如何使相同数合并? 数组中 相同的话,选择方向后 将被合并的 赋为04.如何操作其上下左右? GetAsyncKeyState函数 可以用键盘控制#include#include#include原创 2017-07-30 21:09:19 · 924 阅读 · 0 评论 -
enum 阐述
enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基翻译 2017-07-30 13:18:09 · 369 阅读 · 0 评论 -
c++为什么使用拷贝构造函数?
不得不说C ++是一个广阔的海洋的存在,它剖析后真的全是哲理!!!首先我们说说C ++的6个默认函数:默认构造,默认析构,拷贝构造,取值运算,常量常量取值,赋值运算符。************************************************** **************************************************原创 2018-01-16 16:39:32 · 602 阅读 · 0 评论 -
memset()详解
memset()函数原型是extern void *memset(void *buffer, int c, int count) buffer:为指针或是数组, c:是赋给buffer的值, count:是buffer的长度.其次切记!它是以字节为单位的,所以说如果是字符型没问题,但如果是整型int这个时候可就要注意了*******************************...原创 2018-02-11 14:54:10 · 487 阅读 · 0 评论 -
c++中特化与偏特化
模板特化和偏特化作者:谢宝陵 周 生(合肥市炮兵学院计算中心 230031)摘要:本文通过例子介绍了在 C++标准库中广泛使用的模板特化和偏特化,并指出了模板特化和偏特化的定义规则和应用规则。关键词:模板、特化、偏特化1.引言C++中的模板分为类模板和函数模板,虽然它引进到C++标准中的时间不是很长,但是却得到了广泛的应用,这一点在STL中有着充分的体现。目前,S转载 2018-01-29 21:01:20 · 217 阅读 · 0 评论 -
extern的使用
此文美哉,转载以记。************************************************************************************************1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用) c文件中有一函数: ...转载 2018-02-10 16:37:26 · 219 阅读 · 0 评论 -
fseek()使用详解
在阅读代码时,遇到了很早之前用过的FSEEK(),很久没有用了,有点陌生,写出来以便下次查阅。函数功能是把文件指针指向文件的开头,需要包含头文件stdio.h中FSEEK 函数名:FSEEK 功能:重定位流上的文件指针 用行业释义法律:INT FSEEK(FILE *流,长偏移,INT fromwhere); 描述:函数设置文件指针流的位置如果执行成功,流将指向以fromwhere为...转载 2018-02-10 14:33:02 · 21786 阅读 · 6 评论