- 博客(110)
- 收藏
- 关注
原创 OpenMP 线程互斥锁
OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序。多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互斥锁,就是只有获得互斥锁的线程可以执行,其他线程阻塞。1.OpenMP中的互斥锁函数 void omp_init_lock(omp_lock *) 初始化互斥器...
2020-04-19 17:57:11
535
原创 #pragma omp parallel for
#pragma omp parallel for#pragma omp parallel for是OpenMP中的一个指令,表示接下来的for循环将被多线程执行,另外每次循环之间不能有关系。示例如下:intmain(intargc,char* argv[]){#pragmaomp parallelfor //后面是for循环for(inti = 0; ...
2020-03-21 11:20:13
744
原创 在socket编程中使用域名
客户端中直接使用 IP 地址会有很大的弊端,一旦 IP 地址变化(IP 地址会经常变动),客户端软件就会出现错误。而使用域名会方便很多,注册后的域名只要每年续费就永远属于自己的,更换 IP 地址时修改域名解析即可,不会影响软件的正常使用。关于域名注册、域名解析、host 文件、DNS服务器等本节并未详细讲解,请读者自行脑补。本节重点讲解如何使用域名。通过域名获取IP地址域名仅仅是 IP...
2020-03-08 18:57:34
743
原创 socket编程实现文件传输功能(Windows)
//server#include <stdio.h>#include <stdlib.h>#include <winsock2.h>#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dll #define BUF_SIZE 1024 int main(){//先检查文件是否存在char *fi...
2020-03-08 18:42:36
599
原创 Linux下的socket演示程序
//server.cpp#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/socket.h>#include <netinet/in....
2020-03-08 10:24:42
126
原创 Windows下的socket演示程序
//server.cpp#include <stdio.h>#include <winsock2.h>#pragma comment (lib, "ws2_32.lib") //加载 ws2_32.dllint main(){ //初始化 DLL WSADATA wsaData; WSAStartup( MAKEWORD(2, 2), ...
2020-03-08 10:22:52
153
原创 简单排序算法
#include <stdio.h>#include <stdlib.h>void myswap(int array[], int k, int j){ int tmp = array[k]; array[k] = array[j]; array[j] = tmp;}//选择排序void Selection_Sort(int array[], int ...
2018-05-01 17:12:02
224
原创 #号法创建树
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>typedef struct BiNode{ int data; struct BiNode *lchild, *rchild;}BiNode,*BiTree;BiNode *BiNode_Create(){ BiT...
2018-04-30 21:10:50
277
原创 树的非递归中序遍历
步骤1:结点的所有路径情况如果结点有左子树,该结点入栈;如果结点没有左子树,访问该结点;步骤2:路径所有情况如果结点有右子树,重复步骤1;如果结点没有右子树(结点访问完毕),回退,让栈顶元素出栈,访问栈顶元素,并访问右子树,重复步骤1如果栈为空,表示遍历结束。#include <stdio.h>#include <stdlib.h>#include <string...
2018-04-30 18:15:57
227
原创 树的简单遍历、深度、叶子数量、拷贝
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct BiNode{ int data; struct BiNode *lchild, *rchild;}BiNode,*BiTree;//先序遍历void preOrder(BiNode *root)...
2018-04-30 18:14:33
301
原创 队列的顺序存储设计与实现
//seqlist.h#ifndef _SEQLIST_H_#define _SEQLIST_H_typedef void SeqList;typedef void SeqListNode;SeqList* SeqList_Create(int capacity);void SeqList_Clear(SeqList *list);void SeqList_Destroy(Se...
2018-04-24 22:33:44
227
原创 栈的应用之后缀计算
#include <stdio.h>#include<stdlib.h>#include "LinkStack.h"int isNumber(char c){ return c >= '0'&&c <= '9';}int isOperator(char c){ return c == '+' || c == '-' || c...
2018-04-23 23:54:18
203
原创 栈的应用之中缀转后缀
#include "stdio.h"#include "stdlib.h"#include "string.h"#include "linkstack.h"int isNumber(char c){ return c >= '0' && c <= '9';}int isOperator(char c){ return c == '+' || c
2018-04-23 23:50:39
403
原创 栈的应用之检测括号合法性
#include<stdio.h>#include"linkstack.h"int isLeft(char c){ int ret = 0; switch (c) { case '<': case '(': case '[': case '{': case '\'': case '\"': ret = 1; break; default: ...
2018-04-23 23:45:19
855
原创 栈的链式存储设计与实现
//linklist.h#ifndef _LINKLIST_H_#define _LINKLIST_H_#include<stdio.h>typedef void LinkList;typedef struct _tag_LinkListNode{ struct _tag_LinkListNode *next;}LinkListNode;LinkList *Lin...
2018-04-22 18:06:46
296
原创 栈的顺序存储设计与实现
//seqlist.h#ifndef _SEQLIST_H_#define _SEQLIST_H_typedef void SeqList;typedef void SeqListNode;SeqList *SeqList_Create(int capacity);void SeqList_Clear(SeqList *list);void SeqList_Destroy(Seq...
2018-04-22 12:16:59
273
原创 双向链表
//dlinklist.h#ifndef _MY_DLINKLIST_H_#define _MY_DLINKLIST_H_typedef void DLinkList;/*typedef struct _tag_DLinkListNode DLinkListNode;struct _tag_DLinkListNode{ DLinkListNode* next; DLinkLis...
2018-04-21 21:39:47
164
原创 循环链表
//circlelist.h#ifndef _CIRCLELIST_H_#define _CIRCLELIST_H_typedef void CircleList;/*typedef struct _tag_CircleListNode CircleListNode;struct _tag_CircleListNode{ CircleListNode* next;};*/t...
2018-04-21 15:15:20
175
原创 线性表顺序存储结构
//seqlist.h#ifndef __MY_SEQLIST_H__ #define __MY_SEQLIST_H__typedef void SeqList;typedef void SeqListNode;SeqList* SeqList_Create(int capacity);void SeqList_Destroy(SeqList* list);void Seq...
2018-04-17 23:42:19
165
原创 线性表链式存储
//linklist.h#ifndef _MYLINKLIST_H_#define _MYLINKLIST_H_typedef void LinkList;/*typedef struct _tag_LinkListNode LinkListNode;struct _tag_LinkListNode{LinkListNode* next;};*/typedef struc...
2018-04-17 23:40:03
169
转载 数据结构之空间换时间
#include<iostream>void search(int a[], int len){ int sp[1000] = { 0 }; int i = 0; int max = 0; for (i = 0; i<len; i++) { int index = a[i] - 1; sp[index]++; } for (i = 0; i<...
2018-04-15 17:45:00
1144
原创 行为型模式之迭代器模式
#include <iostream>using namespace std;typedef int Object;#define SIZE 5class MyIterator{public: virtual void next() = 0; virtual Object CurrentItem() = 0; virtual bool isDone() = 0;}...
2018-04-15 12:28:14
184
原创 行为型模式之解释器模式
#include<iostream>using namespace std;class Context{public: Context(int num) { m_num = num; } void setNum(int num) { m_num = num; } void setRes(int res) { m_res = res; } ...
2018-04-15 11:08:28
148
原创 行为型模式之状态模式
#include<iostream>using namespace std;class Worker;class State{public: virtual void doSomething(Worker*worker) = 0;};class Worker{public: Worker(); void setHour(int hour) { m_h...
2018-04-15 10:25:13
175
原创 行为型模式之访问者模式
#include<iostream>#include<list>using namespace std;class ParkElement;class Visitor{public: virtual void visit(ParkElement*parkelement) = 0;};class ParkElement{public: virtu...
2018-04-15 09:47:29
170
原创 行为型模式之备忘录模式
#include<iostream>#include<string>using namespace std;class MemTo{public: MemTo(string name, int age) { m_name = name; m_age = age; } string getName() { return m_name; }...
2018-04-15 00:00:13
197
原创 行为型模式之观察者模式
#include<iostream>#include<string>#include<list>using namespace std;class Secretary;class Observer{public: Observer(Secretary* secretary) { m_secretary = secretary; } ...
2018-04-14 23:15:53
144
原创 行为型模型之中介者模式
#include<iostream>#include<string>using namespace std;class Admierter;class Person{public: Person(string name, int sex, int condition, Admierter *admierter) { m_name = name; m...
2018-04-14 22:32:17
167
原创 行为型模式之策略模式
#include<iostream>using namespace std;class Strategy{public: virtual void crypt() = 0;};class DES :public Strategy{public: virtual void crypt() { cout << "DES加密执行!" <<...
2018-04-14 21:05:49
128
原创 行为型模式之责任链模式
#include<iostream>using namespace std;class CarHandle{public: virtual void HandleCar() = 0; CarHandle *setCarHandle(CarHandle*carhandle) { m_carhandle = carhandle; return m_carhandle...
2018-04-14 20:05:42
200
原创 行为型模式之命令模式
#include<iostream>#include<list>using namespace std;class Doctor{public: void treatEye() { cout << "Treat Eye" << endl; } void treatNose() { cout << "Treat.
2018-04-14 18:40:02
150
原创 行为型模式之模板模型
#include<iostream>using namespace std;class MakeCar{public: virtual void MakeHead() = 0; virtual void MakeBody() = 0; virtual void MakeTail() = 0;public: virtual void Make() { MakeT...
2018-04-14 17:31:20
252
原创 享元模式
#include <iostream>#include<string>#include<map>using namespace std;class Person{public: Person(string name, int age) { m_name = name; m_age = age; } virtual void prin...
2018-04-14 16:39:46
133
原创 外观模型
#include<iostream>using namespace std;class Stock{public: void Trade() { cout << "股票交易!" << endl; }};class Bond{public: void Trade() { cout << "债券交易!" <&a
2018-04-14 15:22:36
523
原创 组合模式
#include<iostream>#include<list>#include<string>using namespace std;class IFile{public: virtual void display() = 0; virtual bool add(IFile*) = 0; virtual bool remove(IFile*...
2018-04-14 14:48:49
146
原创 桥接模式
#include<iostream>using namespace std;class Engine{public: virtual void InstallEngine() = 0;};class Engine4400cc :public Engine{public: virtual void InstallEngine() { cout <<...
2018-04-14 11:13:24
136
原创 适配器模式
#include<iostream>using namespace std;class Current18v{public: virtual void useCurrent18v() = 0;};class Current220v{public: void useCurrent220v() { cout << "我是220v欢迎使用!" <...
2018-04-12 23:40:44
106
原创 装饰模式
#include<iostream>using namespace std;class Car{public: virtual void show() = 0;};class RunCar :public Car{public: virtual void show() { cout << "可以跑!" << endl; }};...
2018-04-12 23:25:42
107
原创 代理模式
#include<iostream>using namespace std;class BookStore{public: virtual void SellBook() = 0;};class PhysicBookStore:BookStore{public: virtual void SellBook() { cout << "实体店卖书!...
2018-04-11 23:58:20
108
原创 原型模式
#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;#include "string"class Person{public: virtual Person* Clone() = 0; virtual void Print() = 0; virtual void setDescr...
2018-04-11 23:17:23
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人