
C++
Maxwellhang
这个作者很懒,什么都没留下…
展开
-
ffmpeg编解码demo
#include <stdbool.h>#include <stdio.h>#include <stdlib.h>#include <string.h>extern "C" { #include <libavutil/time.h> #include <libavutil/timestamp.h> #include <libavutil/opt.h> #include <libavformat/avf原创 2021-02-21 18:37:02 · 582 阅读 · 1 评论 -
C语言扩展python
目录结构├── setup.py├── source│ └── mymodel.cmymodel.c#define PY_SSIZE_T_CLEAN#include <Python.h>/** * reverse * 实际执行函数 * * @param str * @param size */void reverse(char *str, int size) { for (int i = 0, j = size-1; i <原创 2021-02-21 18:13:02 · 231 阅读 · 0 评论 -
初探proto和protobuf
初探protobuf是一种类似xml生成java对象的技术,经过protoc编译.proto文件为.h和.cc文件供给C++调用。是一种数据对象生成方式,.proto定义对象的个格式。data.protosyntax = "proto3";package train_set;message PhoneNumber { string number = 1; int32 type = 2 ;}message Person { string name = 1; i原创 2021-02-21 18:09:36 · 639 阅读 · 0 评论 -
记录C++的webSocket服务代码
server.cpp#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<unistd.h>#include <opencv2/opencv.hpp&原创 2021-02-21 18:05:51 · 286 阅读 · 0 评论 -
c++ split
C++的string类功能残缺(没有split等),麻烦(格式化)C的输入不安全,读取还是用c++的流方便。因此,输入用c++的流,输出用sprintf,split用流模拟,或者用strtok比较方便。//strtokfgets(buf,10000,stdin);char * res = strtok(buf,seq);while(res!=NULL){ printf("%s\n",res); res = strtok(NULL,seq); /*首次调用result =原创 2021-02-21 18:02:50 · 3889 阅读 · 0 评论 -
epoll + socket
功能 读取视频并播放注释部分为多线程方案单线程epoll方案每帧都要请求,可以做到帧同步多线程方案可以不用每帧都请求,不能做到帧同步, 各发各的#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/socket.h>#include <neti原创 2021-02-21 17:57:14 · 184 阅读 · 0 评论 -
caffe自定义层
实现hpp和cppnet在拿到layer之后会调用每层layer的Setup函数,每层Setup中会调用:void SetUp(const vector<Blob<Dtype>*>& bottom,const vector<Blob<Dtype>*>& top) { CheckBlobCounts(bottom, top); LayerSetUp(bottom, top); Reshape(bottom, t.原创 2021-02-21 17:54:45 · 181 阅读 · 0 评论 -
caffe C++接口前馈调用
#ifndef CPU_ONLY#define CPU_ONLY#endif#include <string>#include <vector>#include <iostream>#include "caffe/caffe.hpp"#include "caffe/layers/input_layer.hpp"#include "caffe/layers/conv_layer.hpp"#include "caffe/net.hpp"#include原创 2021-02-21 17:53:19 · 136 阅读 · 0 评论 -
C++徒手撸多层感知机(MLP)训练MNIST数据集
模型建立1 基本单位层11 输入层12 损失层13 激活层14 全连接层2 网络3 优化方法代码构建1 层11 输入层12 损失层13 激活层14 全连接层2 网络3 优化方法试验的构建1 解析MNIST2 试验流程3 试验效果不足和展望1. 模型建立1.1 基本单位–层神经网络可以抽象为层:每个层的作用是把自己后面那一层的数据,通过前向计算到自己层的数据中,原创 2017-09-05 11:44:36 · 2325 阅读 · 1 评论 -
C++中创建对象的时候加括号和不加括号的区别
c++创建对象的语法有—– 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new MyClass; 4.—————MyClass a();声明了一个返回值为MyClass类型的无参函数。#include <iostream> class MyClass { public:转载 2017-03-07 21:39:13 · 2577 阅读 · 0 评论 -
堆排序
堆的性质,是永远最大的在上面(最大堆,最小堆反之)//====================堆排序==============================//堆取左右节点和父节点的操作int myleft(int i){ return 2*i+1;}int myright(int i){ return 2*i+2;}int myparent(int i){原创 2017-03-07 21:17:16 · 226 阅读 · 0 评论 -
两种基于分治思维的排序算法
分治思维: 分治策略的思想起源于对问题解的特性所做出的这样的观察和判断:原问题可以被划分成k个子问题,然后用一种方法将这些子问题的解合并,合并的结果就是原问题的解。快速排序: 采用分治的思维,以首位为key,将数组分为大于首位和小于首位的两部分,小于首位放在key之前,大于首位的放在key之后(升序排序)。实现这种分部分的方法是,使用前后两个指针: (1) 初始,前指针指向首位(key的位置原创 2017-03-05 16:16:28 · 2858 阅读 · 0 评论 -
C++编译过程附g++操作
g++编译的基本过程预处理编译 –> C to 汇编 –> 汇编 to 机器码链接如下图所示: 每个阶段的作用如下表: 阶段 作用 预处理 宏定义的展开,头文件的包含,以及处理各种编译指令如#progam once等。完成后生成预编译文件 .i 编译成汇编 先调用语法检测对文件的语法进行分析和代码优化,存储分配。通过后生成汇编文件 .s 编译成机器码原创 2017-01-07 11:02:24 · 561 阅读 · 0 评论 -
c++内存的分区
有道云地址C/C++的内存分区### 堆区 堆区存放的是动态申请的内存,以new,或则malloc申请的内存。### 栈区 栈区顾名思义是一个栈,它将程序的变量压入,退出作用域时弹出。### 静态/全局区 存储全局变量和函数的区域,一旦程序启动,就不再增减。### 常量区 存放常量的区域。上代码#include<iostream>#include<stdio.h>#includ原创 2016-12-23 15:54:03 · 374 阅读 · 0 评论 -
C语言中的预编译宏定义
在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的”宏(macro)”进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编, 编译, 连接过程集成到一起了. 编译预处理往往在后台运行. 在有的C编译器中, 这些过程统统由一转载 2016-12-23 16:42:24 · 487 阅读 · 0 评论