自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

执著的专栏

Make it work, Make it right, Make it fast

  • 博客(22)
  • 资源 (10)
  • 问答 (2)
  • 收藏
  • 关注

原创 编译调试

目录1 编译1.1 编译流程1.2 automake生成Makefile1.3 编写Makefile.am1.4 编写bMakefile1.5底层查看命令2 gdb调试命令1 编译1.1 编译流程预处理 gcc -E hello.c -o hello.i 编译 gcc -S hello.i -o hello.s 汇编 as hello.s -o...

2020-04-22 17:20:41 367

原创 并行编程

目录1 openMP并行编程1.1 常见命令1.2 限制条件1.3 循环结构并行2 无锁编程__sync__2.1 CAS原子操作实现无锁2.2原子操作函数2.3无锁函数1 openMP并行编程openMP针对共享内存并行编程的API。#include <omp.h>1.1 常见命令编译:g++ xxx.cpp -fopen...

2020-04-22 15:00:33 496

原创 C++11新特性

1 C++11关键字auto:类型自动推导关键字,声明的变量必须被初始化。不能使用auto情况:函数形参、结构体非静态成员变量、数组和实例化模板时模板参数move():获得绑定到左值上的引用。将左值引用转换为右值引用nullptr:是c++中空指针类型的关键字,不能被转换成数字for(auto count : counts):遍历counts中的值,C++11中引入的auto主要有...

2020-04-20 20:10:52 192

原创 C/C++字符串处理

目录1 snprintf函数2 转换函数比较3 string中函数的用法1 snprintf函数1、写入目标串的字符数不超过size,包括'\0'2、必须格式化参数,防止源串包含%s等格式化字符,会在后面寻找字符串指针,若未找到,会出现非法内存访问3、必须判断返回值,避免写溢出(目标串str是字符数组,如果不以'\0'结束,对函数返回值ret(即预写入字符个数)进...

2020-04-20 16:37:20 269

原创 C++计算数组大小

目录1 c语言计算数组大小2 c++计算数组大小1 c语言计算数组大小c语言通过如下方式可以获取数组大小:int arr[] = {23, 34, 32};int arr_size = sizeof(arr)/sizeof(arr[0]);当数组作为函数参数时,通过这种方式计算数组的size会为1(数组名作为函数参数相当于指向数组的指针)2 c++计算数组大小...

2020-04-07 18:37:49 8749 4

原创 C++ 一些关键字的用法

一、const关键字1.1 成员变量const成员变量初始化方式:构造函数初始化列表中进行初始化 将const成员变量用static修改,在类外初始化1.2 const成员函数class A{public: void test() const { std::cout << "const func" << std::endl;...

2018-11-22 21:11:00 322

原创 C++ new操作符实现

C++ new操作符实现一、new操作符C++中new操作符是语言内置的,不能被重载,实现了两个功能:内存分配、调用对象构造函数。其中内存分配调用标准函数operator new,声明如下:void * operator new(size_t size);释放内存时使用delete运算符,底层会调用标准函数operator delete来释放内存。二、operator new...

2018-11-20 00:25:13 2941

原创 C++对C的拓展

目录一、bool类型关键字二、引用三、输入输出四、函数参数五、string类六、左值一、bool类型关键字C++在C语言的基础类型上新增了布尔类型(bool),bool可取的值有两个:true、false,占用一个字节。true代表真值,编译器内部用1来表示;false代表非真值,编译器内部用0来表示。#include &lt;iostream&g...

2018-09-10 16:01:38 200

原创 C++ coredump实例解析

一、背景 经过重重调试后,看到编译成功的那一刻,内心充满欢喜。当程序一运行,却经常出现coredump的情况,此时内心是崩溃的。我想程序员经常会碰到这种情况,尤其使用c++语言编写代码,由于没有自动内存管理,经常会出现coredump情况,主要原因有以下几类:操作非法指针 内存访问越界:索引越界、使用高危函数等 格式化输出时数据类型错误 并发引起的问题:未加锁保护;使用线程不安...

2018-08-25 23:30:36 3136

原创 单例模式-基于boost库

单例模式是最常使用的设计模式之一,特别在跨文件编程时使用的最多。#include&lt;boost/noncopyable.hpp&gt;#include&lt;pthread.h&gt;#include&lt;stdlib.h&gt;template&lt;typename T&gt;class Singleton: boost::noncopyable ...

2017-06-06 00:26:58 2103

原创 C语言实现函数重载

C语言实现函数重载c语言中不允许有同名函数,因为编译时函数命名是一样的,不像c++会添加参数类型和返回类型作为函数编译后的名称,进而实现重载。如果要用c语言显现函数重载,可通过以下方式来实现:使用函数指针来实现,重载的函数不能使用同名称,只是类似的实现了函数重载功能 重载函数使用可变参数,方式如打开文件open函数 gcc有内置函数,程序使用编译函数可以实现函数重载示例如下:#...

2017-04-09 22:58:49 31639 3

原创 gdb调试多线程出现的死锁

多线程的条件下,程序很容易出现死锁,此时各个线程处于等待状态,可以通过gdb调试找到死锁出现的地方。例子:#include #include #include pthread_mutex_t lockA = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_t lockB = PTHREAD_MUTEX_INITIALIZER;void

2017-01-10 16:36:30 1219

原创 Automake自动编译

Automake自动编译1、创建源代码文件hello.h,hello.cpp。执行autoscan命令生成configure.scan,cp configure.scan configure.ac,编辑configure.ac文件,如下图:  其中AM_INIT_AUTOMAKE(hello,1.0)需要手动添加,否则生成不了aclocal.m4文件。2、执行aclocal命令生成...

2016-09-24 22:55:16 1663

原创 配置加载-简单工厂实现

一、使用场景进程对多个配置进行reload,reload前判断配置的版本号是否有升级二、简单实现使用简单工厂思想进行实现。进程初始化时,加载对应的配置,保存当前配置的版本号以及加载的回调函数,并注册到全局的map 配置reload时,根据传入的配置参数,对各个配置进行reload,比较当前配置版本和历史版本是否一致,不一致才进行reload#include &lt;iostr...

2016-09-22 00:54:23 716

原创 检索词联想-Trie树实现

我们在使用百度或其它搜索框的时候经常会看到如下情况:下拉框中会显示检索词的联想,这个功能是怎么实现的呢?其实这就是Trie树(或者字典树)的一个实际应用。这里不具体介绍Trie树,接下来简单实现一下这种联想功能。#include#include#include#include#define N 256using namespace std;struct Tre

2016-09-08 10:29:37 4524 1

原创 C语言实现继承和多态

#include &lt;stdlib.h&gt;#include &lt;string.h&gt;#include &lt;stdio.h&gt;//------------- Person --------------typedef struct Person { void* derived_obj; char* name; void (*life)(s...

2016-04-05 23:12:04 1799

原创 C++ 虚函数问题

1. 构造函数中可以调用虚函数吗可以,只是不会产生动态行为,因为构造函数是从基类开始构造,基类在调用虚函数时,子类还未构造,所以调用的是基类的函数。2.析构函数可以调用虚函数吗如果在父类析构函数中调用虚函数,其实际调用的是子类的函数,而此时子类析构函数已经把数据销毁了,会出现不可知的结果。3.析构函数可以调用纯虚函数吗不可以,编译会出错。5.析构函数可以是纯虚函数吗可以...

2016-03-23 11:00:30 568

原创 STL常见容器

目录顺序容器vectorlistdeque使用区别关联容器setmaphash_map顺序容器vector可以动态增加空间大小,并不是在原空间之后续接新空间,而是以原空间大小的两倍另外配置一块较大空间。支持随机存储,常用操作:push_back,pop_backvector真正删除元素:v.erase(remove(v.begin(), v...

2016-02-26 14:00:58 659

原创 IO多路复用-epoll模型

服务端代码:#include#include#include#include#include#include#include#include#include#include#include //mac下不支持,可以使用kqueueint main(){int socket_fd,connect_fd;struct socka

2015-11-04 13:52:10 421

原创 IO多路复用-poll模型

客户端代码同上服务器端代码:#include#include#include#include#include#include#include#include#include#include#include#include#includevoid handle(struct pollfd* clients, int ma

2015-11-03 23:58:40 474

原创 IO多路复用-select模型

客户端代码见:C/S通信---服务器阻塞型使用服务器端代码:#include#include#include#include#include#include#include#include#include#include#include#includeint main(){int socket_fd,connect_fd;

2015-11-02 21:42:19 406

原创 阻塞型I/O

服务器端代码:#include#include#include#include#include#include#include#include#include#includeint main(){int socket_fd,connect_fd;struct sockaddr_in servaddr;char buff[3];

2015-11-02 16:25:49 416

使用c++生成xml文件

使用c++语言将其它类型的文件生成xml文件

2017-01-18

机器学习实战

机器学习实战 内涵PDF文档 机器学习第二阶段

2015-12-10

MySQL技术内幕:InnoDB存储引擎

MySQL技术内幕:InnoDB存储引擎 数据库必看教材

2015-12-10

Unix 网络编程

杨继张翻译 清华大学出版社 学习linux编程必备书籍

2015-12-10

学生成绩管理系统(C#版)

本系统使用用C#编写,与一般系统最大的区别在于能自动绘制出班级成绩分布柱状图(分为五个等级,‘优秀’,‘良’,‘中等’,‘及格’,’不及格‘)

2011-12-31

数据结构:线性链表的表示以及实现(C语言编写)

数据结构:线性链表的表示以及实现(C语言编写) 有完整的代码注释以及重点分析

2011-12-11

简单聊天室(C#编写)

实现简单的聊天,用C#编写,附带有详细的代码以及注释。

2011-12-10

数据结构:线性表的顺序表示以及实现(C语言编写)

线性表的顺序表示以及实现(C语言编写),有完整的注释。

2011-12-03

最新手机号码归属地查询

最新全国手机号码归属地查询。 附带软件的源代码以及全国部分手机号码归属地数据库

2011-12-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除