自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (2)
  • 收藏
  • 关注

原创 C++对象模型

1,什么是对象模型?对象模型,就是对象在内存中的存放形式,如何在内存中体现出对象的多种特性。2,为什么要了解对象模型?借用侯捷老师的一句话,勿在浮沙筑高台。我们要想写好代码,写更少的bug,或者在出现问题时能够快速分析定位问题。我们就必须了解C++的底层机制,知其然知其所以然。从而,无论是工作还是面试,我们都能以不变应万变。待续。。。...

2020-03-28 00:06:17 149

原创 把C++当作产品来研究

0.前言开发一个产品,我们会首先研究它的需求,也就是要解决的问题,然后再去用代码实现它。同样,C++也是一个软件产品,我们从一个产品的角度来分析它,并逐渐深入它。将之前学习的知识点(多态、虚表等特性)系统化。1,需求背景开发C++的需求背景是什么?C++是基于C语言开发的,那为什么不要C语言,而要开发C++呢?有的同学可能会说,是为了加类。是吗?那为什么要加类呢?之所以开发C++,是因...

2020-03-28 00:05:58 161

原创 new和malloc的区别

先看下new、delete的实现过程://new的实现过程是先分配内存再调用类的构造函数//举个例子:ClassA* pClassA = new ClassA();//new的实现过程如下:void* mem = operator_new(sizeof(ClassA));//step1:分配内存pClassA = static_cast<ClassA*>(mem); //...

2020-02-26 22:52:00 133

原创 智能指针(pointer like classes)

为什么要有智能指针C++的内存分为两种,栈和堆。栈中的内存使用之后不需要程序员去释放,会被自动释放。而在堆中分配的内存,是不能自动回收,需要程序员通过书写代码去回收。(malloc在堆中分配的内存由free来回收,New在堆中分配的内存由delete来回收。)如何智能回收内存借助RAII机制,RAII(Resource Acquisition Is Initialization),是C++采...

2020-02-13 21:25:19 171

原创 C++函数重载

函数重载是C++的特性,而C语言没有这种特性。什么是函数重载?支持相同函数名,不同参数列表的函数同时存在,而在C语言中会报错。例如:void testFun();void testFun(int param);void testFun(int param, bool flag);void testFun(bool flag, int param);以上函数在C++中能够同时...

2020-02-11 16:36:53 143

原创 C++书籍分享

目录总结:零.手册类:《C++程序设计语言(The C++ Programming Language)》《C++标准程序库(C++ Standard Library Tutorial and Reference) 》《The C++ IO Streams and Locales》《The C++ Standard (INCITS/ISO/IEC 14882-2011)》...

2019-11-17 00:13:53 1544 4

原创 函数模板(function template)

描述:函数模板做的事情就是将函数的参数类型进行抽象化,如下面代码写到的,这是将两个类进行比较,取最小的,这个类可能是int、long、double、复数、年龄类等,如果在一个工程里,多个类都涉及到这种比较,就需要对每个类都写一次这样的比较函数。因此,函数模板就是为了解决类似问题,当算法一样时,只是参数类型不一样时,将参数类型进行抽象,写出通用函数,这就是函数模板。#include &...

2019-01-04 14:25:42 591

原创 QT 创建、读写INI文件

qt中创建,读写INI文件,写个小例子。//write inivoid MyTest::WriteIni(){ //创建配置文件 QSettings *pIni = new QSettings(QCoreApplication::applicationDirPath()+"/test.ini", QSettings::IniFormat); //写入数据 p

2015-12-11 16:40:33 5476

原创 Qt界面设计(隐藏窗体标题栏,制作按钮菜单)

最近工作需要,用到Qt,现在先写个小程序和大家分享下几个我觉比较重要的知识点,希望大家指正,以后再陆续更新该例子主要功能有:1,隐藏窗口标题栏,然后自己设计一个2,新建close按钮3,按钮菜单制作voidMyTest::Init(){ //隐藏窗口的标题栏 this->setWindowFlags(Qt::FramelessWind

2015-12-04 15:16:05 12706 2

原创 两种方法测试大小端

来分享下两种检测大小端模式的方法,写得有点简单大端模式:数据的低位放在低地址小端模式:数据的低位放在高地址检测大小端,就是看看数据的低位是放在低地址处,还是高地址处。有两种方法:1、直接在visual c 下用Memory查看,2、用union检测1、直接在visual c 下用Memory查看,如下图代码Memory:如图,数据的低位0

2015-03-20 17:02:14 666

原创 时钟设置

自己总结一下系统时钟的设置,有哪里不对的,说得不全的,请大家指教啊~~为什么要设置系统时钟?不是有外部晶振可以给cpu提供工作的频率吗?是这样的,外部晶振提供的频率一般是十几兆,而我们cpu才不同情况下需要的频率不同,一般需要几百兆,而且cpu的工作频率和其他的设备工作频率也不完全一样,例如UART,所以就需要几种不同的频率,FCLK,HCLK,PCLK。要满足上述的需求,需要通过设置pl

2013-04-16 10:31:24 815

sgi-stl-2.91.57-source.zip

C++的STL源码

2022-01-16

就地逆置算法

模块划分: 1)void InitList(LinkList *L),初始化链表。 2)void DestroyList(LinkList *L),销毁链表。 3)void ClearList(LinkList *L),清空链表。 4)int ListEmpty(LinkList L),判断链表是否为空。若为空,则返回1;反之,则返回0。 5)void ListTraverse(LinkList L),遍历链表并输出。 6)void CreateList(LinkList *L, ElemType a[], int n),后接法建立顺序链表。 7)void reverse(SqList *L,ElemType a[],int n), 逆置顺序表。 8)main(),主函数。

2012-11-23

空空如也

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

TA关注的人

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