编程
学者(cloudea)
写前后端就图一乐 算法才是生活
展开
-
用C模拟面向对象2(模拟OOP)
前言随着编程经验逐渐丰富,我发现编程的思想并不局限于任何一种语言,比如我们就可以使用C语言去实现类似于C++和Java的面向对象(OOP)编程。我惊讶于C语言的强大,因为它可能写出像linux这样庞大的系统。对于现在的大型工程来说,面向对象是发不可少的一种东西了。因此本篇博文详细介绍如何使用C这样一种简单语言去实现复杂的面向对象编程。之前我的一篇博文已经介绍了如何使用C语言来模拟面向对象的编程范式,但是那篇其实也是借鉴了其实人的博客内容,而且思路有写混乱。现在,我从工程角度再次梳理这个问题,并举了一个设原创 2020-11-14 15:00:56 · 7299 阅读 · 0 评论 -
一种简单的使用pandas DataFrame划分训练集、测试集、验证集的方法
例如划分训练集、测试集、验证集比例为 6:2:26: 2: 26:2:2, 代码如下:import pandas as pd""" 此脚本将数据集分为训练集和测试集和验证集"""if __name__ == "__main__": data = pd.read_csv("corpus-model-filtered.csv", header=None) #加载数据 data:pd.DataFrame = data.sample(frac=1.0)原创 2020-10-29 12:59:32 · 5808 阅读 · 2 评论 -
实现控制台下载进度效果
效果代码用最朴素的语言,做最朴素的事情!此效果关键在于输出字符 \b 有退格的效果。希望读者能够在理解原理的基础上灵活运用。#include <stdio.h>#include <stdlib.h>#include <Windows.h>char buf[] ="\b\b\b\b\b\b\b\b\b\b" \"\b\b\b\b\b\b\b\b\b\b" \"\b\b\b\b\b\b\b\b\b\b" \"\b\b\b\b\b\b\b\b\b\b"原创 2020-10-07 18:59:35 · 329 阅读 · 0 评论 -
DLL的生成与加载(c++、java、python)
生成一般是用c语言生成,但现在基本都是c++环境了,所以以下步骤展示了如何在VS C++ 环境中生成DLL。以导出一个max()函数为例, 首先编写如下 代码:#include <stdio.h>/* 以C++环境为例, 以下代码展示了三种方式。 1)第一种导出的函数签名是C++的方式 2)第二种导出的函数签名是传统c的方式 3)第三种可以批量导出传统c方式的函数签名*/// _declspec(dllexport) int max(int x, int原创 2020-10-06 17:07:53 · 845 阅读 · 0 评论 -
感知器的实现
本篇实现了一个最简单的感知器,能够将下图中的两类数据分开。原理我们假设有一个超平面可以将两类数据分开:wTx=0w^Tx=0wTx=0其中,wT=[w0 w1 w2 ... wn]w^T=[w_0 \ w_1 \ w_2 \ ... \ w_n]wT=[w0 w1 w2 ... wn]是系数,xT=[1 x1 x2 ... xn]x^T=[1 \ x_1 \ x_2原创 2020-06-27 13:56:52 · 829 阅读 · 0 评论 -
c/c++在win和linux中的文件关系
注意:(1) 其实在Linux系统中,可执行文件扩展名可以任取(2) 此外,mingw虽然运行在window上,但 具有一些linux系统的特点原创 2019-12-29 23:10:29 · 287 阅读 · 0 评论 -
设计模式之模板模式示例
模板模式template pattern模板,就是规定了一个算法,然后把它拆成多个步骤,其中一些步骤由子类来实现。由于模板实现了算法中的一些步骤,因此可以在保持变化同时,减少代码复制。外部使用抽象的模板,而不是具体的子类,这体现了依赖倒置原则。模板模式的核心类如下所示。public abstract class Template { public abstract ... opera...原创 2019-11-30 13:11:58 · 232 阅读 · 1 评论 -
设计模式之组合模式示例
组合模式简介组合模式(Composite Pattern),就是同一类型的对象像一棵树一样聚焦在一起。就像下图一样。图中一个结点对应一个类的实例。图中的箭头是“组成关系”,即某个结点内部包含了指向的所有结点。如果翻译成类图,就像下图一样 。SubComponent就是上图中的Branch,它包含多个Component,也就是说,SubComponent既可以包含SubComponent,又...原创 2019-11-19 23:17:33 · 2484 阅读 · 0 评论 -
用c模拟面向对象编程
前言看了其它人的例了,发现写得很复杂。参考了许多篇,发现核心思想也不过是那么回事,特此记载基类模拟继承模拟继承就是子类包含所有父类的东西。我们可以直接包含一个父类对象或者父类的指针。在下面的例子中,使用的是父类的对象。#include <stdio.h>void baseShow() { printf("base");}struct Base { void (*...原创 2019-10-29 13:28:17 · 626 阅读 · 0 评论 -
window上用c/c++实现socket udp编程
服务端如果对socket()、bind()函数不理解,请看另一篇博文:windows上用c/c++实现socket tcp编程https://blog.csdn.net/u013749051/article/details/102790585#include <iostream>#include <thread>#include <winsock2.h...原创 2019-10-29 10:54:31 · 2399 阅读 · 0 评论 -
windows上用c/c++实现socket tcp编程
服务端#include <iostream>#include <thread>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib")using namespace std;int main() { //不用管这两行,抄就完事了 WSADATA ws; WSAStartup(MAKEWO...原创 2019-10-28 22:59:19 · 2356 阅读 · 8 评论 -
java实现MD5摘要算法及MD5原理
MD5初始值md5算法规定了初始值,把它分成四组分别叫作A、B、C、D,并把每个分组看作一个整数(大端模式)。初始值如下:从左到右是按照字节递增的顺序。0123456789abcdeffedcba9876543210因此A = 01234567B = 89abcdefC = fedcba98D = 76543210但是数字在Windows、Linux等系统中是以小端模式存储的,因此...原创 2019-09-08 22:52:54 · 1883 阅读 · 0 评论 -
socket可靠性的实现办法:连接的可靠以及数据发送的可靠
在进行socket相关编程的过程中我发现,Scoket不是那么稳定可靠,表现在以下方面:如果长时间没有数据往来,连接会断掉(可能是路由或防火墙)如果客户端断网, 服务端不能检测到。这会导致服务端一直占用资源,且发出的数据 没有发送成功却不会 出错针对以上两个问题,一些解决方案如下。设置socket的keepalive属性 。 但是在实践过程中发现并没有用,长时间没有数据传送...原创 2019-07-20 15:54:37 · 1342 阅读 · 2 评论