- 博客(18)
- 收藏
- 关注
原创 读书 笔记
C++读书笔记 1.定义于函数体内的内置类型的对象如果没有初始化,则其值未定义。类的对象如果没有显示地初始化,则值由类自己确定 2.c++是一种静态类型语言,其含义是在编译阶段检查类型。检查类型的过程叫类型检查。对象的类型决定了对象能参与的运算。所以编译器必须知道每一个实体对象的类型,并要求我们在使用某个变量之前必须声明类型。 3.引用 引用是一个变量的别名,即是一段内存空间的代号。 如果要使一个已经存在的非只读变量拥有只读属性,只需要定义一个新的const变量做为它的引用,则该新的变量为只读的。 当使用字
2022-01-08 19:15:53
383
原创 2021-09-15
一、epoll 相关函数 记不住函数的声明的时候可以在使用man手册查看, man 2 epoll_+函数名字 epoll_create函数声明: int epoll_create(int size); 功能:在内核中创建epoll事件表,创建一个实例 size:在内核中创建的epoll事件表的大小 return:返回epoll事件表的文件描述符 epoll_ctl函数声明: int epoll_ctl(int epfd, int op, int fd, struct epoll_event *eve
2022-01-08 19:14:13
367
原创 MFC应用程序基本实现过程
#include <Windows.h> //底层窗口实现的头文件 //6.窗口过程 声明回调函数 /* CALLBACK ---> _stdcall 参数的传递顺序:从右到左入栈,并且在函数返回前清空堆栈 LRESULT CALLBACK WindowProc( _In_ HWND hwnd, 消息所属的窗口句柄 _In_ UINT uMsg, 具体的消息名称 WM_XXX消息名 _In_ WPARAM wParam, 键盘的附加消息 _In_ LPARA
2021-07-04 21:04:48
411
原创 c++primer 学习笔记(一)
1.定义于函数体内的内置类型的对象如果没有初始化,则其值未定义。类的对象如果没有显示地初始化,则值由类自己确定 2.c++是一种静态类型语言,其含义是在编译阶段检查类型。检查类型的过程叫类型检查。对象的类型决定了对象能参与的运算。所以编译器必须知道每一个实体对象的类型,并要求我们在使用某个变量之前必须声明类型。 3.变量命令规范: 1. 标识符要体现含义 2. 标识符必须由字母或i者下划线开头,大小写敏感,关键字不能做标识符 3. 变量名一般小写,如index ,不能使用Ind
2021-04-17 10:55:40
217
原创 error:非静态成员引用必须与特定对象相对
非静态成员引用必须与特定对象相对 问题解决: 类的成员有两种:静态成员和实例成员(包括实例和函数)。 实例成员的存储空间属于具体的实例,不同实例(对象)的同名成员拥有不同的存储空间; 静态成员的存储空间是固定的,与具体的实例(对象)无关,被该类的所有实例共享。 访问静态成员可以用ClassName::MemberName,也可以用ClassName.MemberNme,但最好用前者,因为很容易就可以判定成员是静态成员。 访问实例成员只能用ClassName.MemberName,不能用ClassName::
2020-12-07 23:20:20
3469
原创 安装git提示E: Package ‘git‘ has no installation candidate
环境: ubuntu 18.04 问题: 在进行linux系统上安装git时提示 E: Package 'git' has no installation candidate root@iZbp1ibvmgmcwwjt2gtphvZ:~# apt install git Reading package lists... Done Building dependency tree Reading state information... Done Package git is not avai
2020-11-16 21:33:28
4767
原创 重建二叉树
解题思路: 前序遍历是根左右,中序遍历是左根右,所以遍历时需要在前序字符串里找到根节点,然后在中序字符串里遍历到该根节点,最后对左右节点采用递归即可 代码 class Solution { public: TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) { return build(preorder ,inorder ,0,0,inorder.size()-1);
2020-09-11 20:16:38
127
原创 Git相关命令
Git是linux之父Linus的另一个伟大作品,一款开源并且高效的版本控制软件,2005年诞生开始就用于linux内核的代码版本控制。git的功能和svn类似,但有两个显著的特点: 一是分布式。每个人的电脑即可以是客户端,也可以是一台服务器,每个人都可以在自己电脑上进行代码的本地提交,维护版本,而不影响其它人,等到项目阶段性完成再将代码同步到服务器,svn则只能统一提交到服务器才有日志信息。 二是可以快速开分支。同一套代码上,处理不同的需求,就可以开不同的分支,因为分支的实现机制,开...
2020-08-19 09:41:22
381
原创 epoll 相关函数说明
epoll 相关函数说明,在这里总结一下,用的时候可以返回来看相关函数的具体说明,记不住函数的声明的时候可以在使用man手册查看, man 2 epoll_+函数名字 epoll的工作机制之后再去整理一下 epoll_create函数声明 int epoll_create(int size); 功能:在内核中创建epoll事件表 size:在内核中创建的epoll事件表的大小 return:返回epoll事件表的文件描述符 epoll_ctl函数声明 int epoll_ctl(int epfd, int
2020-08-15 17:58:42
492
原创 数据结构的基本操作以及两个顺序表的合并
数据结构—顺序表的基本操作 还有两个顺序表的合并 代码演示: test.cc #include "test.h" #include <iostream> using namespace std; int init_list(psqlist L) { if (L == NULL) { return 0; } L->len = 0; return 0; } int len_list(psqlist L) { if (L == NULL) { return
2020-08-14 12:31:12
993
原创 C++ STL标准库模板之vector(向量容器)
STL标准库模板之vector(向量容器) 头文件包含 #include <dector> 之所以说vector是一个向量容器 是因为vector可以像容器一样存放各种数据类型的对象,并且可以动态的拓展容器大小 简单的说,vector就是一个存放任意数据类型(可以是int、string、float等)的动态数组,能够增加或者压缩数据 使用标准模板库vector的好处在于可以通过内部的一些方法对数据进行操作,省去数据结构的相关处理 <>里面的代表声明对象的数据类..
2020-07-24 17:07:17
579
原创 理解学习面向对象设计模式---单例模式
面向对象设计模式---单例模式 首先得了解面向对象设计模式的思想: 1. 对接口编程而不是对实现编程 优先使用对象组合而不是继承。 2.开闭原则: 对扩展开放,对修改关闭 3.单例模式: 一个单例只能有一个实例对象 必须自己创建自己的唯一实例 必须给所有的其他对象提供这一实例 解决了一个全局使用的类频繁的创建和销毁,减少系统资源的占用 关键代码:构造函数是私有的+ 一个静态的实例 缺点:没有接口,不能继承 实现单例模式的基本过程: 构造方法私有,保证其...
2020-07-23 12:04:58
264
原创 linux里使用shell脚本读取文件的每一行内容并输出
linux里使用shell脚本读取文件的每一行内容并输出 mkdir test.txt 在当前目录新建文件test.txt vim test.txt 点击i 进入vim编辑模式,内容如下: 点击Esc键退出vim编辑模式,shift + : 输入qw保存退出 hello world hello shell hello c++ 实例1:采用while循环 ( < 表示输出重定向 ) #!bin/bash whilereadline do echo...
2020-07-22 11:18:55
5265
原创 c++ 抽象类接口的简单实现
接口描述了类的行为和功能,并且不需要去完成功能的具体实现 C++ 接口是使用抽象类来实现的 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类,而可以在类里实例化对象的称为具体类 什么是虚函数呢? 虚函数是在基类中使用关键字virtual声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。 我们想要的是在程序中任意点可以根据所调用的对象类型来选择调用的函数,这种操作被称为动态链接。 在基类中又不能对虚函数给出有意义的实现,这个时候就会用...
2020-07-21 17:45:59
815
原创 c 用栈编写一个四则运算计算器 支持括号
用栈编写四则运算器 包括两个栈,运算符栈和操作数栈,采用数组方式 自左向右扫描表达式,凡是遇到操作数一律进操作数栈。 当遇到运算符时,如果他的优先级比运算符栈栈顶元素的优先级高就入栈。反之,取出栈顶运算符和操作数栈顶的两个连续操作数运算,并将结果存入操作数栈,然后继续比较该运算符与栈顶的运算符的优先级。 后缀表达式规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分; 若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于找顶符号(乘除优先加减) ..
2020-07-20 19:47:31
629
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1