自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 VS2008中F12无法跳转到函数的声明

清理项目,重新生成解决方案,即可。

2024-01-12 16:13:51 377 1

原创 仿射变换、线性变换

仿射变换在图形学中,仿射变换也叫仿射映射,是指一个向量空间经过一次线性变换,在经过一次平移,变换为另一个向量空间。线性变换也叫线性映射,线性映射是从一个向量空间V到另一个向量空间W的映射且保持加法运算和数量乘法运算,而线性变换是线性空间V到其自身的线性映射。它可以看成一个动态的过程,比如旋转、伸缩或者投影之类的升降维的操作,例 :一束很大的光照到小长方体上,在墙上映射出一个影子,那么影子和小长方体之间就相当于存在一个线性变换,三维到二维的线性变换想要深度理解线性变换,建议查询Dire

2022-05-23 17:19:24 2091

原创 二叉树的前序,中序,后续遍历

前序 : 根左右中序 :左根右后续 : 左右根前序class Solution {public: void pres(TreeNode* root, vector<int> &v) { if(root == nullptr) return ; v.push_back(root -> val); pres(root -> left, v); pres(root -> righ

2022-03-23 18:33:08 1527

原创 c++中深拷贝和浅拷贝

首先我们举例浅拷贝#include <iostream>using namespace std;class Student {public: Student(); ~Studnet();private: int num; char *name;}Student::Student(){ name = new char(20); cout << "Student构造函数" << endl;}

2022-03-22 21:33:39 843

原创 c++中的继承关系

基类访问权限分为,public protected private共有继承 : 不改变基类中任何访问权限保护继承 :基类中的public权限为protected,原protected为protected不变,private权限也不变,仍为private私有继承 : 基类中的public,和protected变为private,原private不变。另外 :不管如何继承,基类的private在子类中都是没有访问权限的。...

2022-03-20 10:13:08 859

原创 c++中sizeof(结构体)

struct str1{ // sizeof(str1) 为24char a;double b;char c;}struct str2{ // sizeof(str2) 为16double a;int b;char c;}最后求出的大小要是结构体中最大类型的倍数。

2022-03-18 22:02:16 905

原创 哈希表实现原理

哈希表底层是数组,键值对存储,当插入数据时,对键值进行hash运算得到value,value对数组取余,存入数组下标位置,所以哈希表的插入,删除,查找时间复杂度为O(1),实现哈希函数解决哈希冲突外部拉链法: 基于数组和链表的方法解决哈希冲突开放定址法:在这个位置+1, -1 , +2 , -2 的位置探测公共溢出法:开辟一个特殊的存储空间,专门放冲突的数据再哈希 :发生冲突时,采用其他的函数进行查找...

2022-03-17 21:19:14 367

原创 c++中的重写

重写就在继承关系中,子类函数名和父类函数名相同,不管函数列表是否相同,都会隐藏父类的函数。#include <iostream>using namespace std;class Base {public:void func(double, int) { cout << "Base" << endl; }};class Cild : Base {public:void func() { cout << "Clid" <

2022-03-16 17:34:01 1971

原创 c++实现strstr函数

函数原型 : char* strstr(char *str1, char *str2);功能 : 从str1中查找是否有str2字符串,如果有,从str1中str2出现的位置起返回str1的指针,如果没有,返回nullptrchar* strstr(char *str1, char *str2){if(*str1 == nullptr || *str2 == nullptr) return nullptr;int size = strlen(str1);for(int i = 0;

2022-03-16 17:07:32 5523

原创 二层主机通信

二层主机通信主机p1向主机p2通信,首先会查看自己的arp缓存,(1)没有arp缓存 : p1会广播arp请求,p2收到会单播回复mac地址,同时p2也会保存p1的mac地址到自己的arp缓存,p1收到p2的arp回复后,把p2的mac地址写到自己的arp缓存,并封装成帧转发给交换机,(2)有arp缓存,也就是arp缓存中有p2的mac地址,则p1把自己要发的数据封装成帧,帧的格式为(目的mac地址,源mac地址,目的ip地址,源ip地址 数据),帧到交换机后,交换机会检查p1的mac地址表中.

2022-03-16 11:41:15 616

原创 http请求中get和post区别

get是用来从服务器获得数据的,post是向服务器传递数据的。get是不安全的,请求数据被放在URL中,post更安全,post的数据都在包体中。get传输数据量小因为受URL长度限制,而post可以传输大量数据。...

2022-03-15 17:47:11 278

原创 水平触发和边缘触发

水平触发 (LT)读缓冲区非空就一直触发,写缓冲区不满也会一直触发写事件边缘触发 (ET)读缓冲区由空转为非空触发一次,写缓冲区由慢转为非满的时候触发一次

2022-03-13 21:30:40 316

原创 epoll更高效的原因

虽然select poll epoll 都是返回就绪fd的数量,但是select poll不能准确返回是那些fd,需要无差别轮询所有流,而epoll可以准确返回,select poll是把fd的数据结构拷贝进内核,再拷贝出来,而epoll创建的fd数据结构本身就在内核中,epoll有三个函数 epoll_create epoll_ctl epoll_waitepoll核心数据结构是红黑树和链表...

2022-03-13 12:47:34 934

原创 二叉树的简单题型

1 二叉树的镜象class Solution {public:ThreeNode* mirrorTree(TreeNode* root) {if(root == nullptr) return nullptr;ThreeNode* tmp = root -> left;root -> left = mirrorTree(root -> right);root -> right = mirrorTree(tmp);return root;}}

2022-03-12 22:59:43 585

原创 select,poll和epoll

IO复用技术(一个进程为多个客户端提供服务)(1) select : 知道有I/O事件发生,但不知道是那个流,要无差别轮询所有流,所以时间复杂度为O(n)(2) poll : 和select类似,没有最大连接数的限制,因为是他是基于链表存储的,O(n)(3) epoll : epoll会把那个流发生什么I/O事件通知我们,时间复杂度为O(1)...

2022-03-12 21:52:55 405

原创 c++11新特性

1 using 的功能完全覆盖typedeftypedef unsigned int unio_t;using unio_t = unsigned int;2 auto 和 decltype都用于自动类型推导3 原来的空是NULL c++11是nullptr4 基于范围的for循环for(auto num : nums)5 右值引用c++98中允许 int num = 10;int &a = num;int &b = 10; //这是错误的 c++中不

2022-03-12 14:40:43 825

原创 c++实现strcpy

函数原型 char* strcpy(char *dest, const char *src);#include <iostream>using namespace std;char *strcpy(char *strDest, const char *strSrc){if(*strDest == nullptr || *strSrc == nullptr)return nullptr;char *addr = strDest;while(*strSrc != '\

2022-03-11 20:50:52 1843

原创 进程间通信方式

进程间通信方式

2022-03-11 19:57:48 67

空空如也

空空如也

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

TA关注的人

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