cpp加油站
  • 16
    文章
  • 3
    专栏
  • 14593
    访问
  • 5
    粉丝
  • 5
    关注
  • 10
    获赞

cpp加油站 等级

公众号:cpp加油站,专注分享linux下c++开发知识
  • 最新发表
  • 最多访问
  • 最多收藏
  • 最多评论
【STL源码拆解】基于源码分析forward_lsit容器实现(详细!)

本篇文章介绍一下c++11中新增的顺序容器forwardlist,基于stl的源码分析一下该容器的整体实现及数据结构。 说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。按照惯例,还是先看一下本文大纲,如下: 1. forwardlist是什么forwardlist是c++11为STL新增加的一种顺序容器,使用的时候包含头文件forwar

cpp加油站
471
0
0
c++11增加的变参数模板,今天总算整明白了

本篇文章介绍一下c++11中增加的变参数模板template<typename... Args到底是咋回事,以及它的具体用法。 说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。按照惯例,还是先看一下本文大纲,如下:在之前写vector和deque容器源码剖析的过程中,经常发现这样的代码,如下:cpptemplate<typename..

cpp加油站
674
0
0
【deque容器系列二】基于STL源码分析deque容器插入和删除时内存都是怎么变动的

上篇文章我们介绍了deque容器整体结构和构造实现,链接如下:本篇文章接上篇,继续基于gcc中stl的源码剖析deque容器插入、删除、取值的实现原理,以提问者的角度去深入分析这些操作过程中发生了什么,并对deque容器适合使用的场景和使用时的注意事项进行说明。 说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。按照惯例,还是先看一下本文

cpp加油站
673
0
0
【deque容器系列一】基于STL源码分析deque容器整体实现及内存结构

本篇文章基于gcc中stl的源码介绍deque容器的整体实现和它的内存结构。 说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。首先呢,还是看一下思维导图,如下: 1. deque容器整体源码实现介绍deque容器是stl中顺序容器的一种,之前已经介绍过array和vector了,今天介绍deque容器,deque的本质是一个类模板,它的

cpp加油站
783
0
0
【工欲善其事,必先利其器】之gdb五大高级用法

本篇文章讲解gdb的一些高级用法,在我们的开发生涯中,调试是很重要的技能,而在linux下开发,最常用的调试工具就是gdb了,所以这里介绍几种gdb比较高级的用法,助力我们的调试技能。还是先看下思维导图: 1. gdb怎么调试多线程gdb调试多线程时,默认情况下是所有线程同时都在执行,但是假设我们想只有一个线程继续执行,其他线程都暂停呢?下面就来看一看该怎么

cpp加油站
1025
0
0
【工欲善其事,必先利其器】之怎么查看c++代码生成的汇编代码

本篇文章讲解怎么得到c++代码对应的汇编代码,想要真正的理解一段代码到底是怎么执行的,还是要从汇编的层面去看,那怎么得到一段c++代码所对应的汇编代码呢,下面为你介绍三种方式。 1. gcc编译生成XXX.s文件一般来讲,给你一个cpp文件,比如test.cpp,然后我们编译都是直接g++ test.cpp这样简单直接的方式,但其实它中间有很多个过程的,包含

cpp加油站
1196
0
0
上次说了静态数组可变长,今天知道原理了

之前发了一篇文章,讲c99变长数组的,链接如下:发出去以后有了挺多的反馈,因为这并不是一个很难的知识点,所以如果接触过的自然而然是知道,但还真有挺多人表示不知道和不相信这个事,同时我上次也只是简单的说了一下这个事,没有去讲解这个变长静态数组的实现原理,今天补上。先看一下思维导图: 1. 变长数组是长度一直可以变的吗变长数组,那么是长度一直可以变的吗,到底什么

cpp加油站
1105
0
0
c++中引用面试点7连问以及引用真的不分配内存吗

本篇文章从面试官的口吻连问7个引用有关的问题,并且从汇编的层面上对引用进行深入分析,让你充分理解引用的概念和原理。首先还是看一下思维导图: 1. 引用的背景和概念说到引用,首先要说一下'&'标识符,其实c语言中这个符号只是用来取地址的,并没有引用的概念,直到c++对这个标识符的作用进行了扩充,才有了引用这个概念。所谓引用,其实就是给变量取了一个别名,一个简单

cpp加油站
1116
0
1
c++类和继承面试点25连问

本篇文章连问面试时经常会遇到的类和继承相关25个问题,看看你能回答出几道题呀。还是先看一下思维导图,如下: 1. c++的三大特性是什么c++的三大特性,说白了其实就是面向对象的三大特性,是指:封装、继承、多态,简单说明如下: 封装是一种技术,它使类的定义和实现分离,也就是隐藏了实现细节,只留下接口给他人调用,另外封装还有一层意义是它把某种事物具现出属性和方

cpp加油站
1384
0
0
c++头脑风暴-多态、虚继承、多重继承内存布局

本篇文章深入分析多态、虚继承、多重继承的内存布局以及实现原理。首先还是看一下思维导图:下面根据这个大纲一步一步的进行深入解析。 一、没有虚函数时内存布局是怎样的 1. 没有虚函数时类的内存布局一个类没有虚函数的时候,其实就是结构体,它的内存布局就是按照成员变量的顺序来的。看如下代码:cppinclude <iostreamusing namespace s

cpp加油站
1305
0
0