【C++实现离散余弦变换】教程文章相关的互联网学习教程文章

c++ 实现双向链表【代码】

双向链表:#include<iostream> using namespace std;typedef struct list {int data;struct list *front;struct list *next; }List;List *head; //头结点 List *tail; //尾结点 int sum = 0;void push(int e) {List *p = new List;p->data = e;if(sum == 0){head = p;tail = p;p->front = NULL;p->next = NULL;}else{tail->next = p;p->front = tail;tail = p;p->next = NULL;}sum++; }void pop_back() {List *p = tail->front;p...

C++实现动态顺序表【代码】

#define _CRT_SECURE_NO_WARNINGS 1#include<iostream> using namespace std; #include<assert.h>typedef int DataType;class SeqList { public: SeqList() :_array(NULL ) , _size(0) , _capicity(0) {} SeqList(const SeqList & sList) :_array(new DataType [sList ._size]) , _size( ...

二叉树C++实现【代码】

二叉搜索树的代码实现,有插入、查找、删除等基本功能。需要注意的是,当类中有私有类pClass且在类外声明的成员函数的返回值是pClass类型的时候,需要在pClass前加typename。比如说template <typename Comparable> typename binarysearchtree<Comparable>::BinaryNode* binarysearchtree<Comparable>::findMax(BinaryNode* t)const {if (t == NULL) return NULL;if (t->right == NULL) return t;return findMin(t->right); }这里的...

FIFO算法与LRU算法的C++实现【代码】

#include <bits/stdc++.h> usingnamespace std; /*** FIFO算法的实现:其实是可以采用双端队列,然后限制一下* 双端队列的长度,根据我的限制应该是4。对于查询是否出现* 在这个队列里面,我们可以采用一个数组标记是否有存在。** 测试数据如下 16 4 0 1 2 4 3 4 5 1 2 5 1 2 3 4 5 6* **/struct FIFO{int len, m;///长度, len - 总访问数; m - 分配的物理块数int arr[105];///存储访问页面的编号deque<int>que;int vids[15];///标...

C++ 线性表实现【代码】

List.h #pragma once #include "targetver.h"#include <stdio.h> #include <tchar.h>#define LIST_INIT_SIZE 100 #define MAXSIZE 100typedef int ElemType;typedef struct Sqlist {ElemType * elem;int length;int listsize; }Sqlist, *ListPtr;typedef enum Status {success, fail, fatal, rangeerror,overflow }Status;Status List_Init(ListPtr L);void List_Destroy(ListPtr L);void List_Clear(ListPtr L);bool List_Empty(L...

【排序】堆排序,C++实现【代码】【图】

原创文章,转载请注明出处!博客文章索引地址博客文章中代码的github地址# 预备知识 堆是一种特殊的树形数据结构,即完全二叉树。堆分为大根堆和小根堆,大根堆为根节点的值大于两个子节点的值;小根堆为根节点的值小于两个子节点的值,同时根节点的两个子树也分别是一个堆。 # 基本思路步骤一:建立大根堆--将n个元素组成的无序序列构建一个大根堆,步骤...

grpc的简单用例 (C++实现)【代码】

这个用例的逻辑很简单, 服务器运行一个管理个人信息的服务, 提供如下的四个服务:(1) 添加一个个人信息  注: 对应于Unary RPCs, 客户端发送单一消息给服务器, 服务器返回单一消息(2) 添加多个个人信息  注: 对应于Client streaming RPCs, 客户端使用提供的stream发送多个消息给服务端, 等客户端写完了所有的消息, 就会等待服务器读取这些消息, 然后返回响应消息. gRPC保证在一次RPC调用中, 消息是顺序的.(3) 获取最多N个个人信息...

插入排序C++实现【图】

算法描述:从数组第二个元素开始向后扫描,将每个元素插到它前面所有元素的合适位置。下面给出整数数组的实现,对于其他复杂类型只需实现相应的自定义比较函数即可:#include <iostream> #include <math.h> using namespace std; const int Num=20; void exch(int* s,int a,int b) {int mid=s[a];for(int i=a;i>b;i--){s[i]=s[i-1];}s[b]=mid; } int main() { int array[Num]; int min=0; srand(2);//初始化随机数 for(int i=0;i<N...

10行C++代码实现高性能HTTP服务【代码】【图】

前言 是不是觉得C++写个服务太累,但又沉迷于C++的真香性能而无法自拔?作为一个老牌C++程序员(可以看我 github 上十几年前的C++项目:https://github.com/kevwan ),这几天听一个好友跟我聊起他写的C++框架,说极简代码即可完成各种C++服务的开发,不禁让我心生好奇!于是我去研究了一下,发现确实有点意思!实战(干货)话不多说,我们来一起看看,10行C++代码怎么实现一个高性能的Http服务,轻松QPS几十万。Linus说:talk is ...

链式队列的C++实现【图】

链式队列的C++实现一、数据结构struct QNode //定义队列结点的数据结构 {QNode *next; //指针域,指向下一个结点double data; //数据域,存储队列信息 };struct LinkQueue //定义队列的数据结构 {QNode *front; //队首指针,指向QNode类型的指针QNode *rear; //队尾指针 };void InitQueue(LinkQueue &Q) //构造一个空的队列 int IsEmpty(LinkQueue &Q) //判断队列是否为空 void EnQueue(LinkQueue &Q,dou...

串(C++实现)【图】

本段程序实现串的存储结构是采用堆的动态分配存储表示,并实现了几乎所有常用的串的配套函数其中逻辑性比较强的就是串的模式匹配算法,在下面的程序中,分别用BF算法和KMP算法对其进行了实现。#include<iostream> using namespace std;struct HString {HString(){ch = 0;length = 0;}char * ch;//字符存储区int length;//串长 }; void ClearString(HString & T); //用C字符串进行初始化 void StrAssign(HString & T,char s[]) {fre...

学习实践:使用模式,原则实现一个C++自动化测试程序【代码】【图】

个人编程中比较喜欢重构,重构能够提高自己的代码质量,使代码阅读起来也更清晰。但是重构有一个问题,就是如何保证重构后带代码实现的功能与重构前的一致,如果每次重构完成后,对此不闻不问,则会有极大的风险,如果每次重构后,都进行一边测试,则工作量会很巨大,最终可能是即使代码有重构的欲望,也会尽量克制住,不去重构。除非代码能够进行自动化测试。实际上进行测试的是接口,而不是所有代码,只要能够保持接口不变,自动...

C++ 采集音频流(PCM裸流)实现录音功能

与上一篇的“C++ 播放音频流(PCM裸流)” 点击打开链接 相对应,本篇是关于用C++实现录音功能的。同样是直接建一个win32控制台程序然后将代码拷过去改个文件名就可以用,也可以下载本人上传的相关工程,这个工程是用VS2013写的,如果是较低的版本就呵呵了。点击打开链接代码部分如下:#include "stdafx.h" #include <stdio.h> #include <Windows.h> #pragma comment(lib, "winmm.lib") HWAVEIN hWaveIn; //输入设备 WAVEFORMA...

C++实现网格水印之调试笔记(五)—— 提取出错【图】

在实现提取水印的过程中,遇到了一些问题 首先还是根据论文中的思路来梳理一下整个提取流程 读入两个模型,一个原始模型ori_mesh, 一个水印模型wm_mesh。 将两个模型对齐(即放在同一个坐标系下) 分别计算两个模型的频谱系数,记ori_mesh频谱系数为Rs, Rt, Ru, 记wm_mesh的频谱系数为wRs, wRt, wRu. 根据下式计算Qj 再根据下式计算出嵌入水印的符号,这里相当于得到的是嵌入的水印b‘,只是记为了aj 最后根据下式得出原始水印序列...

c++ 链表基础功能实现【代码】

#include<stack>struct ListNode {int m_nValue;ListNode* m_pNext; };ListNode* CreateListNode(int value) {ListNode* pNode = new ListNode();pNode->m_nValue = value;pNode->m_pNext = nullptr;return pNode; }void ConnectListNodes(ListNode* pCurrent, ListNode* pNext) {if (pCurrent == nullptr){printf("Error to connect two nodes.\n");exit(1);}pCurrent->m_pNext = pNext; }void PrintListNodeValue(ListNode* pNo...