C++学习
本余
木一本,木一人余。
展开
-
C++学习笔记(2)(嵌套类、模板类)实现从尾到头打印链表
剑指offer面试题6:从尾到头打印链表/*输入一个链表的头结点从尾到头反过来打印每个结点的值思路:一般不允许修改链表的值1.先遍历的后输出,典型的先进后出,可以用栈去实现2.每次都递归实现当前结点的后一个结点,虽然递归写代码会简洁很多,但是当链表比较长时就会使得调用的层级比较深,导致函数调用栈时溢出。以下代码以思路一完成。*/# include <iostream>...原创 2018-11-10 23:26:14 · 211 阅读 · 0 评论 -
复习-知识点总结(1)
1.有名管道和无名管道的区别?答:管道是半双工的,有名管道的名字等属性信息在磁盘上,数据在内存上,无名管道全部在内存上。有名管道可以任意两个进程间进行通信,而无名管道只可以在父子间进程进行通信。2.进程和线程的区别?答:线程是进程内部的一条执行路径,进程是一个正在运行的程序。在Linux系统下线程与进程实现是一样的,线程就是一个轻量级的进程。进程间通信的方式:管道、共享内存、信号量、信号、消...原创 2019-03-13 20:44:35 · 125 阅读 · 0 评论 -
C++学习笔记(8)顺序容器-vector
1.vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数组安排的角度看,和数组及其相似。不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可以改变了;而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。2.vector的扩充机制:按照容器现在的容量的一倍进行增长。vecto容器分配的是一块...原创 2019-01-22 15:39:16 · 170 阅读 · 0 评论 -
c++学习笔记(9):观察者模式
结合map实现观察者模式1.观察者:观察事件并分发(给这个事件感兴趣的监听者)2.监听者:处理事件一个事件可能存在有一个监听者集合对它感兴趣。所以用到map、与vector容器。//观察者class Observe{public: typedef std::map<int,std::vector<const Listener*> > MMAP;//类型重定...原创 2019-01-22 13:30:06 · 127 阅读 · 0 评论 -
c++学习笔记(7)继承与多态
1.继承的作用:代码复用2.派生类继承基类的什么东西: 除了基类的构造和析构函数以外的所有成员3.public: 任意位置都可以访问 protected: 本类类中,子类类中访问 private: 本类类中访问 基类中不同的访问限定符下的成员以不同的继承方式在派生类中的访问限定public protected privatepublicpu...原创 2019-01-19 11:38:13 · 124 阅读 · 0 评论 -
C++学习笔记(6)通用内存池—智能指针
内存池不依赖某个类存在,针对内存池中的每一个资源进行组织结构,要想申请内存,先得知道mdata的数据类型,其次得知道指针域指向哪里。class Node//嵌套的Node类,表示内存池的数据结构 { public: T mdata;//相当于 char mdata[sizeof(T)] Node* pnext; public: Node():pnext(NULL){} };...原创 2018-12-08 11:06:12 · 1009 阅读 · 1 评论 -
C++学习笔记(5)迭代器
迭代器:设计了一个统一的遍历容器的方式。这种设计模式叫做迭代器模式。容器中对数据结构进行了一个封装,要想遍历整个数据元素,用普通指针是无法访问容器的数据结构。所以需要设计一个面向对象的指针来访问。可以让容器中提供begin()和end()这个接口,用面想对象的指针通过这两个接口就可以遍历这个容器。begin()//指向第一个有效元素的位置。end()//指向最后一个有效元素的后继的...原创 2018-11-25 17:17:28 · 111 阅读 · 0 评论 -
c++学习笔记(3):单例模式
单例模式简单来说就是一个类只能创建一个对象的设计模式。设计步骤:1.生成对象的接口必须屏蔽起来,包括构造函数以及拷贝构造函数。2.生成唯一一个对象的接口,返回值为类*或者类&(保证了不会产生临时对象)3.摆脱构造函数对对象的依赖,设置为静态的。4.对象存放在堆上。(静态方法访问静态成员变量)(1)想让一个类只能构建一个对象,则Signleton的构造方法只能为私有的。(2)i...原创 2018-11-17 12:04:12 · 190 阅读 · 0 评论 -
c++学习笔记(4)c与c++的区别
1.函数的默认值c++可以给形参设默认值,一般如果函数有声明,默认值放在声明里,默认值自右向左依次设计(压栈的时候是从左向右所以匹配的时候为从右向左)。默认值不能重复赋值。2.inline函数:inline修饰的函数叫内联函数。2.1内联函数的特点为:在函数调用点直接展开。2.2内联函数的选择:当函数执行的开销<函数开栈的开销时,即函数体较小时 建议使用内联函数。(inline函数...原创 2018-11-23 23:21:20 · 120 阅读 · 0 评论 -
C++ 笔记:函数堆栈调用&调用约定&形参默认值
1.通过加断点—调试----窗口-----转到反汇编可以查看函数的堆栈调用过程:#include<stdio.h>int sum(int lhs, int rhs){ int temp = lhs + rhs; return temp;}int main(){ int a = 10; int b = 20; int rt = 0; ...原创 2019-05-05 19:21:02 · 369 阅读 · 0 评论