
C/C++
文章平均质量分 52
ForeverYang2015
IT搬砖工!
展开
-
C++ windows TCP和UDP通信学习
服务端,相比较于TCP ,UDP客户端无需 connect ,服务端也无需accept ,socket套接字初始化,TCP的是 SOCK_STREAM 而UDP的是 SOCK_DGRAM,UDP接收和发送用的是recvfrom 和 sendto , TCP用的是recv和send。本章主要总结 C++ windows 下tcp和 udp通信的一些要点。可参考两张简单的通信流程图。(1)tcp的通信过程。(2)UDP的通信过程。原创 2023-11-30 18:24:04 · 1039 阅读 · 0 评论 -
网络协议点滴总结
一、OSI 七层模型中工作的协议应用层: HTTP、SMTP、SNMP、FTP、Telnet、DNS、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP表示层: XDR、ASN.1、SMB、AFP、NCP会话层: ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets原创 2017-09-25 10:53:13 · 850 阅读 · 0 评论 -
Hash 查找
一、前言 哈希查找的资料就看这里吧 http://blog.youkuaiyun.com/xiaoping8411/article/details/7706376 ,哈希查找的本质就是定好表长,创建哈希表,哈希表上的表格就像桶子一样,需要将数据点,先映射为key值(防止奇怪的取值),之后再使用哈希函数映射为哈希地址,各个数据点的地址应该尽可能无规律和尽可能地分散,避免2个以上数据对应对应同个原创 2017-09-24 23:09:23 · 448 阅读 · 0 评论 -
C++简单的单生产者单消费者模式
一、前言 本例展示简单的单生产者单消费者模式,一个生产进程,另一个进程消费,当缓冲区满时,不能往缓冲区放数据,当缓冲区空时,不能从缓冲区取数据。二、代码#include<condition_variable> #include<mutex> #include<thread> #include<iostream> #in...转载 2018-03-14 15:53:38 · 1818 阅读 · 0 评论 -
pthread学习笔记(一) 基本用法
一、前言 phtread类库,也即是“POSIX线程”,pthreads定义了一套C语言的类型、函数与常量,它以pthread.h头文件和一个线程库实现二、phtread 数据类型pthread_t: 线程标识符pthread_mutex_t: 互斥量pthread_code_t: 条件变量pthread_key_t: 线程私有权握访问键pthread_at转载 2018-06-17 10:52:37 · 3827 阅读 · 0 评论 -
pthread学习笔记《二》互斥量和条件变量
一、前言 本篇主要讨论线程同步、互斥量等概念二、转载 2018-06-17 10:53:34 · 412 阅读 · 0 评论 -
pthread学习笔记《三》死锁
一、前言 这篇主要分析造成死锁的原因和解决的一些方法,转载自 http://blog.youkuaiyun.com/ls5718/article/details/51896159二、死锁的定义 多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程转载 2018-06-17 10:54:42 · 799 阅读 · 0 评论 -
c++中的 虚函数 纯虚函数 虚基类
一、前言 原文转载自 https://blog.youkuaiyun.com/a345203172/article/details/21697687,为了理解下C++中虚函数 纯虚函数 虚基类的基础知识点。二、虚函数 纯虚函数 虚基类三者区别 1.虚函数是用于多态中virtual修饰父类函数,确保父类指针调用子类对象时,运行子类函数的。 2.纯虚函数是用来定义接口的,也就是基类...转载 2018-06-27 21:23:06 · 4243 阅读 · 0 评论 -
八大排序
1. 前言 本文主要是记录常用的排序和查找算法。2.1原创 2017-09-15 20:56:07 · 877 阅读 · 0 评论 -
回溯法求解数组中和为固定值的所有元素集合
一、前言 本文参考自http://blog.youkuaiyun.com/u012462822/article/details/51193689,找出数组中和为固定值的所有元素集合,常用的思路是先进行排序,之后再用回溯的方法不断尝试所有可能集合。以下先用快速排序(写得有点烂)降序,再找出降了序的数组中和为某值的所有元素集合二、回溯法 代码如下#include #incl原创 2017-09-24 17:57:28 · 2956 阅读 · 2 评论 -
C++学习笔记(四)指针实现的链表、堆栈、队列、二叉查找树
一、概述本文将介绍在程序执行期间动态消长的动态数据结构,包括链表(linked list)、栈(stack)、队列(queue)、二叉树(binary tree)。这些动态数据结构与定长数据结构(数组)的区别在于前者的长度是动态分配的,而后者为固定长度。二、链表链表是多个数据节点(node)的线性集合,这些节点通过指针链(link)链接起来,是一种线性数据结构。在链表的任何一项数据项上原创 2015-08-25 21:37:29 · 1498 阅读 · 0 评论 -
C++学习笔记(五)标准模板库STL
一、概述STL,即是标准模板库(Standard Template Library)。定义了强大的,基于模板的类库,实现了许多通用的数据结构及处理这些结构的算法。本文对STL的三个关键内容——容器(container)、迭代器(iterator)和算法(algorithm)进行介绍。下面对这三部分进行简单介绍,因为3者的联系密切(1)STL容器容器,是一种可以用来存放多个数据且长度动态原创 2015-08-30 16:41:25 · 1173 阅读 · 0 评论 -
C++学习笔记(六)文件处理
一、概述本文主要讲解如何使用C++程序来创建、更新和处理数据文件,主要考虑顺序存储和随机存储文件两种方式。二、文件和流C++将每个文件看成是字节序列,每个文件都以一个文件结束符或者是存储在系统维护、管理的数据结构中的一个特点字节数作为结尾,而C++使用流对象(一种特殊的类模板的对象,也即流类模板对象)提供程序和文件之间的通信,如标准输入流对象cin,标准输出流对象cout等。为了在原创 2015-09-07 11:48:01 · 974 阅读 · 0 评论 -
c++学习笔记(三)多态性
一、概述本文介绍了C++编程中的多态性的概念及用法,多态性即是同样的消息发给不同派生类对象会产生多种形式的结果。二、使用Virtual函数和动态绑定实现多态性通过基类的指针或引用(指针句柄或引用句柄)调用一个virtual函数时,C++动态地(在运行时)根据对象初始化的类选择正确的函数来执行。代码如下://CommissionEmployee.h#ifndef COMMISS原创 2015-08-21 18:22:47 · 724 阅读 · 0 评论 -
C++学习笔记(一)函数模板与类模板
一、概述函数通常用于执行相似的操作,这些操作处理不同数据类型上的不同程序逻辑,假如函数要处理的数据类型不同,但程序逻辑一样,那么使用函数模板可以简便地对函数进行重载。二、代码如下#include using namespace std;template //class T 即T可表示为不同数据类型T maximum( T value1 ,T value2 ,T value3原创 2015-08-19 15:39:21 · 809 阅读 · 0 评论 -
C++学习笔记(七)输入不定长度二维数组
被一个看似简单的问题困扰一个晚上,对于C++中数组的使用,这里要讨论的是如何利用cin及相关函数从荧屏上将从键盘输入的整数储存到数组中,对于长度已知的数组,可以很容易地开辟数组,而对于长度未知的数组,则一方面可以采用动态分配长度的数组空间实现,另一方面可以采用STL模板库中的vector容器。下面介绍后一种方法: 例如要开辟以下空间则可以使用vector> ,代码原创 2016-03-26 12:01:44 · 14018 阅读 · 1 评论 -
C实现的类似vector的容器
一、前言以下为C语言实现的类似C++的STL中vector的容器二、代码////////////cvector.h////////////////////////////////#ifndef VECTOR_H#define VECTOR_H#include #include /////////结点存放自己的数据结构//////////typedef struct{原创 2016-08-20 16:54:54 · 6848 阅读 · 0 评论 -
C++统计代码运行时间计时器
一、前言 这里记下从网上找到的一些自己比较常用的C++计时代码二、Linux下精确至毫秒#include #include #include double get_wall_time(){ struct timeval time ; if (gettimeofday(&time,NULL)){ return 0;原创 2016-12-01 11:38:48 · 4490 阅读 · 1 评论 -
C++学习笔记(二)C风格字符串和string类区别和联系
一、概述有时候在使用字符串时,总把C++的字符串类型和C风格的字符串混淆,或者独立为不同概念,为此特定查找资料,总结两者之间的区别和联系。如有错误,恳请指出。二、C语言中的字符串在C语言中,对字符串的处理主要是使用字符数组(以空字符’\0’为结尾)或者是指向字符类型的指针,即用char*,但指针在实现字符串类型是较为麻烦的。用法如下://example 1char str[15]原创 2015-08-20 16:40:02 · 1609 阅读 · 0 评论