
C/C++
不想写代码的程序员-
做好手中事,珍惜眼前人
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
centos7升级gcc到7.3.0
/contrib/download_prerequisites会下载对应的依赖包,如果下载不了的话,则需要把脚本里的地址修改一下。make后面有个-j8参数,这个是指定编译时并发的数量,这个值最好设定为你机器的核数的倍数.5、测试当前gcc版本并查看安装位置。会自动重新下载对应的依赖包。原创 2024-07-03 23:04:42 · 1293 阅读 · 0 评论 -
C++虚函数的作用
简单来说,虚函数就是采用virtual修饰的函数,它的主要作用是让成员函数一般化,用基类的指针指向不同的派生类的对象时,基类指针调用其虚成员函数,则会调用其真正指向对象的成员函数,而不是基类中定义的函数。若不是虚函数,则不管基类指针指向的是哪个派生类对象,调用时都会调用基类中定义的函数。 下面通过相关的例子来说明。不是虚函数的成员函数#include <iostream>using namesp原创 2015-11-05 16:55:49 · 643 阅读 · 0 评论 -
STL map []和insert的分析
STL中的map是一个key-value的数据结构 ,每一个key对应着一个值,而且key是唯一的,底层采用红黑树的数据结构实现。在使用map的过程中,有两种方式进行数据的插入,第一种是使用下标的方式,也就是[],第二种是使用insert接口,它们主要的区别如下:下标的方式插入,如果原本key不存在则会先创建对应的记录,然后再进行赋值;insert方式插入,如果key不存在,则插入记录,如果存在原创 2015-10-30 11:18:10 · 9773 阅读 · 2 评论 -
gdb调试core文件
在Linux下进行C/C++开发的小伙伴们应该都遇到过coredump的情况,遇到情况应该怎么处理呢?怎么定位问题所在?只要分析下core文件,那么就很容易找到程序是在哪一行出现coredump的。通常情况下,在程序出现coredump的时候,系统会把程序运行时的内存,寄存器状态,堆栈指针等信息保存到一个文件中,这个文件就是core文件。1) 如何让程序崩溃的时候产生core文件? 系统命令: u原创 2015-11-20 17:49:34 · 2050 阅读 · 0 评论 -
SkipList跳表的实现
关键的是要理解Node结构中使用的柔性数组。/************************************************************************* > File Name: skiplist.cpp > Author: Summer > Mail: 745189913@qq.com > Created Time: Mon原创 2016-08-04 19:08:53 · 507 阅读 · 0 评论 -
协程学习:基本概念(一)
协程的定义 根据维基百科的描述,协程是一种程序组件,与子例程一样,但是协程更为一般和灵活,但在实践中使用没有子例程那样广泛。 https://zh.wikipedia.org/wiki/%E5%8D%8F%E7%A8%8B 其实这个概念不容易理解,可以先忽略,先看看协程到底是干什么用的。协程究竟是什么呢?有什么用呢? 协程其实可以理解为是“用户态”的多线程。在多线程的模型中,操作系统会根据某原创 2016-10-11 21:14:26 · 1462 阅读 · 0 评论 -
协程学习:协程的实现(二)
本文以云风的协程框架来讲述协程的实现,学习协程的实现有利于了解协程的工作机制。 云风协程的实现框架: https://github.com/cloudwu/coroutine/准备知识: ucontext机制 [1] ucontext机制是GNU C库提供的一组用于创建、保存、切换用户态“上下文”(context)的API。 首先要了解的是结构体ucontext_t,这个结构体的作用是用来保存原创 2016-10-13 15:16:41 · 2733 阅读 · 2 评论 -
宏定义中的do {...} while(0)
最近在看一些C++源代码的时候发现很多的宏定义中使用了do {…} while(0)这样的语法,当时觉得很奇怪,感觉这样的语法并没有意义,后来在网上查了相关的资料才发现它的微妙之处。 假如我们有这样一个例子:#define FUNC(x) func1(x);func2(x)int main(){ int x = 0; FUNC(x);}那么在编译的预处理的过程中,编译器会对宏进原创 2017-02-05 17:14:21 · 514 阅读 · 0 评论