自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 STL算法-迭代器

原文链接:https://blog.csdn.net/weixin_45389639/article/details/121618243。

2024-04-24 16:29:00 128

原创 STL set、multiset| map multimap

/ 内部rb_tree容器public://迭代器,set不可以通过迭代器修改元素set中所有操作,使用红黑树做,set这里可以看成一个container adapter。

2024-04-23 17:31:23 55

原创 RB-Tree

red-black tree(红黑树)是平衡二元搜索树(balanced binary tree)。其特征:排列规则有利于Search和Insert,并保持适度平衡—无任何节点过深。前者需要key在树是独一无二的(multimap/set不适用),后者key可以重复存在。rb_tree在使用中需要你提供4个参数:Key、Value、KeyofValue(提取Key的方法)、Compare(比较key的大小的方法)。Compare:Compare(比较key的大小的方法)

2024-04-23 17:17:31 145

原创 STL_deque_stack_queue

deque容器(双端队列)​deque是一种双向开口的。deque支持从头尾两端进行元素的插入和删除。deque没有容量的概念,因为它是动态地以分段连续空间组合而成的。随时可以增加一段新的空间并连接起来。

2024-04-22 21:53:12 328

原创 STL Array、ForwardList源码剖析

参考文章: https://blog.csdn.net/weixin_45389639/article/details/121618243。

2024-04-22 21:20:50 260

原创 STL_vector源码剖析

STL2.91源码地址: https://github.com/lewischeng-ms/sgi-stl侯捷老师用的是 2.91,不同版本的STL差异很大,靠后版本的STL用了太多typedef,导致可读性很差本文参考博客: https://blog.csdn.net/weixin_45389639/article/details/121618243。

2024-04-22 20:37:35 223

原创 STL_List与萃取

1>traits所谓traits,可以理解为“萃取机”。作用就是:你丢给他什么东西,他会给你拿出你想要的特性。迭代器的特性:iterator_traits

2024-04-22 19:03:53 197

原创 【Java_2 == 和equals 详解】

== equals

2023-07-23 17:41:32 128

原创 【Java_1 instanceof 详解】

intanceof 关键字 详解

2023-07-23 16:49:36 130

原创 批量删除c/c++中的注释

因为搬砖的缘故,需要批量删除文件夹中的注释网上看了一些帖子,跑起来和要求都有些不符合,所以写了一个简单的脚本 ,去除.c .cpp中的注释支持删除的注释有1 单行注释/*11111111111111*/2 以//开头的注释//2222222222223以//结尾的注释hello world //3333333333不会删除hello world,只删除结尾的//333334 /**/ 多行注释/***/或者这种类型/**************************

2021-05-14 23:28:18 1612

原创 2020-08-18 C语言实现链表

链表LinkList.cLinkList.hLinkListmain.cLinkList.c#include "LinkList.h"#include <stdio.h>#include <stdlib.h>// 创建List list_create(){ List l = {NULL,NULL,0}; return l;}// 初始化bool list_init(List* seq){ seq->head = NULL; seq->tail

2020-09-18 21:44:11 143

转载 github添加/删除文件(文件夹)

1.添加:1).在本地项目里,cd到本项目根路径下;2).执行添加:git add 文件/文件夹名称3).提交注释:git commit -m ‘提交xxx’4).最后:git push完成。2.删除:1).在本地项目里,cd到本项目根路径下;2).执行添加: git rm -r --cached ‘文件夹名’3).提交注释:git commit -m ‘删除xxx’4).最后...

2019-11-05 19:33:19 527

原创 Tinyhttp项目

#include <stdio.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd.h>#include <ctype.h>#inclu...

2019-10-11 17:48:36 340

原创 TinyHttp

//client#include <stdio.h>#include <string.h>#include <arpa/inet.h>#include <sys/socket.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>void...

2019-09-18 09:08:48 807

原创 Socket套接字简单使用

//tcp_server#include <stdio.h>#include <arpa/inet.h>#include <sys/socket.h>#include <string.h>#include <stdbool.h> bool exiting = false; void* receive(void* arg)...

2019-09-09 20:23:47 147

转载 Linux实现myshell

#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#include<sys/types.h>#include<sys/wait.h>#include<sys/stat.h>#include<fcntl.h...

2019-09-07 10:23:39 444 1

原创 Linux线程池

#include <pthread.h>#include <stdbool.h>#include <stdlib.h>#include <stdio.h>#include <string.h> #define WORK_THREAD_COUNT 6 typedef struct Task{ void (*pfunc...

2019-09-07 08:09:37 109

原创 Linux网络编程1:socket套接字入门

写一个时间上最简单的客户端和服务器:由客户端发一条数据,服务器接收 在将数据打印出来原理客户端/发送端必须指定连接/发送的IP(广播地址、回环地址或者某个具体地址)。必须指定连接/发送的port。服务器/接受端IP指定为通配地址、回环地址或者某个具体地址。必须指定绑定监听/接受的port。TCP客户端和服务器通信原理如图所示,先放代码://文件tcp_client.c#i...

2019-08-26 18:59:38 219

原创 Linux系统变成6:线程

//线程//1.轻量级进程,也有PCB 创建线程使用的底层函数和进程一样都是clone//clone克隆父进程的0-3G的用户空间,父进程的PCB//2.从内核看进程进程和线程一样的,都有各自不同的PCB,但是PCB中指向内存//资源的三级页表时相同的//创建进程,内存给进程分配4G的地址空间//进程如何索引到4G地址空间? 虚拟地址到物理地址的映射关系//Linux管理虚拟内存 采...

2019-08-23 22:04:11 113

原创 牛客:倒置字符串

将一句话的单词进行倒置,标点不倒置。比如 I like beijing.经过函数后变为:beijing. like I输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100输出描述:依次输出倒置之后的字符串,以空格分割1.先把字符串整体倒转反转前: I like beijing.反转后1: .gnijied ekil I2.把字符传中每...

2019-08-22 12:17:05 269

原创 2的N次方

对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果链接:https://www.nowcoder.com/questionTerminal/e9a4919b8848451d9aff81e3cdd133b1?toCommentId=3622476来源:牛客网#include<bits/stdc++.h>using namespa...

2019-08-22 11:30:14 444

原创 笔记4399

第一部分:基本概念及其它问答题1、关键字static的作用是什么?这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3). 在模块内,一个被声明为静...

2019-08-22 10:31:08 205

原创 Linux系统编程5.1: 信号捕捉

转载:信号的三种状态及信号集函数地址: https://blog.csdn.net/xiaodu655/article/details/80246440int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);参数1:对哪个信号捕捉参数2:信号的...

2019-08-19 12:30:19 113

原创 Linux 系统编程5:信号

查看linu下有哪些信号:kill -l 哪里会用到信号,比如你想结束掉一个进程 :ps -aux 查看进程kill 结束进程kill传递一个信号,信号会导致进程终止windows任务管理器也是一样的道理,发送一个信号,导致进程终止man 7 signal linux中查看信号的机制信号产生种类终端特殊按键 Ctrl+c SIGINT Ctrl+z SIGTSTP ...

2019-08-16 20:41:20 174

原创 Linux系统编程4:共享内存mmap

mmap可以把磁盘文件的一部分直接映射到内存,这样文件的位置就有对应的地址对文件的读写可以直接用指针来做而不需要read writeshared 映射private 映射修改内存中的数据,磁盘当中跟着修改shared否则private映射 ,内存当中修改不影响磁盘man mmap 查看这个函数的使用void *mmap(void *addr, size_t length, int ...

2019-08-15 23:52:16 119

原创 Linux系统编程3:fifo

用来解决没有血缘关系的进程之间的通信创建一个有名管道[kiosk@foundation74 Linux系统编程]$ mkfifo myfifo管道写端:#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<stdlib.h>#include<sys/types...

2019-08-15 18:20:16 112

原创 Linux系统编程2:匿名管道pipe

#include<stdio.h>#include<unistd.h>#include<string.h>#include<stdlib.h>int main(void){ int fd[2]; char str[1024]="hello world"; char buf[1024]; //fd[0]读端,fd...

2019-08-15 17:08:11 145

原创 C++基础4:多态

多态1.多态概念:2.早绑定与晚绑定3.虚函数定义的规则4.纯虚函数5.重载和覆盖的区别6.判断是否覆盖1.多态概念:多态:不同类型对象调用相同接口完成不同的行为。根据对象的实际类型不同,可以自动完成不同的行为,而仅仅通过一致的调用形式。2.早绑定与晚绑定实现:C++多态性主要是通过虚函数实现的,虚函数允许子类重写override(注意和overload的区别,overload是重载,是...

2019-08-12 15:54:41 133

原创 C++虚继承与虚基类

虚继承与虚基类多重继承虚继承菱形继承多重继承一个类可以同时继承多个父类的行为和特征功能。class 类名 : public 基类1,public 基类2{};//逗号分割 基类列表虚继承虚继承:在继承定义中包含了virtual关键字的继承关系;虚基类:在虚继承体系中的通过virtual继承而来的基类;class Derive:public virtual Base{}; ...

2019-08-12 15:08:28 238

原创 C++引用与指针的区别

指针和引用的区别1.指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。2.引用只能在定义时被初始化一次,之后不可变;指针可变;3.引用不能为空,指针可以为空;4.引用使用时无需解引用*,指针需要解引用;5. sizeof 引用得到的是所指向的变量/对象的大小,而sizeof 指针得到的是指针本身的大小;1.指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。2.引...

2019-08-12 11:55:43 83

转载 C++中必须用初始化列表的四种情况

初始化列表1. 类成员为const类型2 . 类成员为引用类型3.没有默认构造函数的类类型4. 如果类存在继承关系,派生类必须在其初始化列表中调用基类的构造函数1. 类成员为const类型2 . 类成员为引用类型1.常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面。2.引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表里面#include&lt...

2019-08-12 11:50:04 5894 2

原创 C++STL容器:map

1. 简介map是key-value构成的集合。2. 操作map是键值对<key,value>构据集合。key必须唯一。主要用来查找key对应value,要求key必须是可排序的,必须支持<比较运算符。map默认是以key升序存放键值对<key,value>数据,比较适合二分查找。2.1 初始化默认构造(可带参数)复制构造范围赋值构造初始化时必须...

2019-07-31 10:39:04 620

原创 C++STL容器:set

1.set简介set集 合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;另外,还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法,检索效率高于vector、deque和list等容器,另外使用中序遍历可将键值按照从小到大遍历出来。构造...

2019-07-31 10:10:01 118

原创 Linux系统编程1:进程基础

概念进程:程序在计算机上的一次执行过程,执行中的程序。从程序到进程内核将程序读入内存,为程序镜像分配内存空间。内核为该进程分配进程标志符PID。内核为该进程保存PID及相应的进程状态信息。进程控制块(PCB):保存进程控制信息进程状态类似视频/音频播放器如何查看进程No.OS命令e.g.1Windowstasklisttasklist /FI “...

2019-07-29 23:37:36 235

原创 C++基础3.2:继承

1.语法原则:is-a父类/子类基类/派生类class 派生类 : [访问限定符] 基类 { 成员}//如果不写继承访问限定符,默认是private2. 成员的访问权限publicprotectedprivate类成员函数√√√友元函数√√√子类函数√√×类对象√××3.子类内部访问父类的权限...

2019-07-29 18:05:47 92

原创 C++限定符:

一、constNo.类型语法作用1const指针类型* const 变量 = 初始值;指针指向地址不能改变2指向const对象的指针const 类型* 变量 = 初始值; 类型 const* 变量 = 初始值;指针指向对象不能改变3指向const对象的const指针const 类型* const 变量 = 初始值;指针指向地址和对象不能改变...

2019-07-29 12:44:29 1094

转载 C/C++:常量指针和指针常量

转载地址:https://www.cnblogs.com/FlyGee/p/7424852.html一、常量指针常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:1)const int *p;2)int const *p;使用常量指针时要注意,指针指向的对象不能通过这个指针来...

2019-07-29 11:52:30 150

原创 C++基础3.1:拷贝构造函数与赋值运算符重载实例

这次代码的内容是通过模拟C++的string类,来数字拷贝构造函数和赋值运算符重载#include <iostream>#include <cstring>using namespace std; // char str[20]; // 缺点1:字符串大于数组大小放不下。// 缺点2:字符串远小于数组大小就会空间浪费。// char*与动态分配内存结合的方式...

2019-07-29 11:16:10 171

原创 C++基础3:拷贝(复制)构造函数

使用类创建对象时,构造函数被自动调用以完成对象的初始化,那么能否象简单变量的初始化一样,直接用一个对象来初始化另一个对象呢?答案是可以:Student s1;Student s2=s1;像这种语句在语法上是合法的。初始化s2,相当于将s1中每个数据成员的值复制到s2中,这是表面现象。实际上,系统调用了一个复制构造函数。如果类定义中没有显式定义该复制构造函数时,编译器会隐式定义一个缺省的...

2019-07-19 18:28:49 309

原创 C++基础2:构造函数与析构函数

1构造函数1.1语法类名(参数){ 函数体}1.2特点1.在对象被创建时自动执行2.构造函数的函数名与类名相同3.没有返回值类型、也没有返回值4.可以有多个构造函数1.3调用时机对象直接定义创建–构造函数不能被显式调用new动态创建1.4默认构造参数类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,默认构造函数没有参数1.5构造函数的三个作用...

2019-07-18 23:01:47 133

空空如也

空空如也

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

TA关注的人

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