自定义博客皮肤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)
  • 收藏
  • 关注

原创 C++中的auto类型转换问题

C++中使用auto的一些注意事项

2022-10-07 20:32:34 745 1

原创 实现一个简单的myString封装

代码如下:简单的实现了构造函数,拷贝构造函数,赋值运算符。为了便于测试重写了<<运算符。#pragma once#pragma warning(disable:4996)#ifndef _MYSTRING_H_#define _MYSTRING_H_#include<string>class myString{public : myString(const char* ptr = 0); myString(const myString& mystr);

2021-06-28 15:01:59 198

原创 用时间轮实现连接的管理

1.用时间轮实现连接的管理时间轮:#ifndef TIME_WHEEL_TIMER#define TIME_WHEEL_TIMER#include <time.h>#include <netinet/in.h>#include <stdio.h>#define BUFFER_SIZE 64class tw_timer;struct client_data{ sockaddr_in address; int sockfd; c

2021-06-10 20:43:05 75

原创 Linux高性能服务器编程 共享内存的方式实现聊天室服务器

本代码参考Linux高性能服务器编程,实现了一个简单的聊天室。用到的知识点有:epoll,shm_open,mmap多线程。#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<stdbool.h>#include<assert.h>#include<stdio.h>#include<stdlib.h>#includ

2021-05-05 23:04:41 276

原创 实现Ping

代码如下:1.main函数#include<WinSock2.h>#include<stdio.h>#include"ping.h"int main(void){ CPing objPing; char DestIP[] = "172.22.56.231"; PingReply reply; printf("Pinging %s with %d bytes of data:\n", DestIP, DEF_PACKET_SIZE); while (TRUE)

2021-04-14 15:59:06 79

转载 C++虚函数和多态的理解

C++多态、虚函数表、动态链接,虚函数指针,RTTI多态多态的概念:基类指针指向派生类的地址,通过实现派生类的重写函数实现同一个函数接口不同的功能。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function)实现的,因为通过父类的指针去调用不同的子类指针对父类虚函数的重写方法实现多态,同样的接口函数可以实现不同的功能。虚函数通过动态绑定实现、动态绑定通过vfptr(虚函数指针)和vftable(虚函数表)来实现的联编/绑定:程序调用函数,编译器决定调用哪个函数地址。

2021-03-29 16:32:02 223

原创 C++里面的转型

在C++的程序设计里面尽量少做一些转型动作1.C++一共提供了4中新式的转型 *const_cast<type>(expression) dynamic_cast<type>(expression) reinterpret_cast<type>(expression) static_cast<T>(expression)*下面将一一分别介绍:(1)const_cast(expression)。通常被用来将

2021-03-27 20:02:35 123

原创 顶层const和底层const的辨析

/*关于顶层const和底层const的解析顶层const表示:指针本身是一个常量底层const表示:指针的指向的对象是一个常量*/#include<iostream>using namespace std;int main(){ int i = 0; int* const p = &i; //p是一个顶层const,表示p的值不能被改变 const int ci = 42; //ci是一个顶层的cosnt,ci的值不能被改变 const int* p2

2021-03-27 15:59:17 56

原创 了解new-handler的行为

1.当operator new 无法满足某一内存需求时,他会抛出异常。以前它会返回一个null指针,一些老的编译器目前也会这样做。当operator new 抛出异常以反映一个为满足的内存需求之前,它会先调用一个客户指定的错误处理函数,一个所谓的new-handler。当operator new 无法满足内存申请时,它不断调用new-handler函数,直到找到足够的内存。那么只要是设计一个良好的new-handler就要做一下的这些事情。(1)让更多的内存可以被使用。(2)安装另一个new-hanld

2021-03-20 16:43:26 133

原创 侯捷Effective C++ 绝不重新定义继承而来的缺省参数值

1.当重新定义继承而来的缺省参数值的时候。C++为了提高效率:虚函数动态绑定,缺省参数值静态绑定。这样会造成调用一个派生类里面的虚函数的同时,会使用基类为它指定的缺省值。代码如下:```cpp#include<iostream>using namespace std;class Shape{public : enum shapeColor{Red,Green,Blue}; virtual void draw(shapeColor color = Red) const = 0

2021-03-19 21:00:34 69

原创 C++ 实现编辑距离算法求两句话的相似度:

C++ 实现编辑距离算法求两句话的相似度:代码如下:核心算法如下:float levenshtein_distance(vector& hypothesis, vector& reference){vectorresult;const int len_typ = hypothesis.size();const int len_ref = reference.size();vector<vector<int>>cost_matrix(len_typ +1

2020-10-06 19:38:24 266

空空如也

空空如也

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

TA关注的人

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