C/C++
文章平均质量分 73
冬天的烤地瓜
这个作者很懒,什么都没留下…
展开
-
C++Union的用法
联合(union)在C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现,那么究竟什么是联合、怎么去用、有什么需要注意的地方呢?就这些问题,我试着做一些简单的回答,里面肯定还有不当的地方,欢迎指出!1、什么是联合?“联合”是一种特殊的类,也是一种构造类型的数据结构。在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该转载 2017-01-10 20:22:28 · 466 阅读 · 0 评论 -
环形缓冲区的设计与实现
环形缓冲区是嵌入式系统中十分重要的一种数据结构,比如在一个视频处理的机制中,环形缓冲区就可以理解为数据码流的通道,每一个通道都对应着一个环形缓冲区,这样数据在读取和写入的时候都可以在这个缓冲区里循环进行,程序员可以根据自己需要的数据大小来决定自己使用的缓冲区大小。 环形缓冲区,顾名思义这个缓冲区是环形的,那么何谓环形这个意思也很好理解,就是用一个指针去访问该缓冲区的最后一个内存位置的转载 2017-06-15 15:30:43 · 778 阅读 · 0 评论 -
C++实现RTMP协议发送H.264编码及AAC编码的音视频
RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder转载 2017-06-09 14:30:24 · 512 阅读 · 0 评论 -
C++ 堆上创建对象与栈上创建对象的区别 创建对象时有和无花括号的区别
在C++中类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* p=new A(),A*p=(A*)malloc();静态建立一个类对象,是由编译器为对象在栈空间中分配内存,通过直接移动栈顶指针挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。动态建立类对象,是使用new运算符将对象建立在堆空间中,在栈中只保留了指向该对象的指针。栈是由编译器自动分配释放原创 2017-06-07 20:50:47 · 1013 阅读 · 0 评论 -
简单理解Socket
TCP/IP要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准,从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。不同于ISO模型的七个转载 2017-06-07 19:25:42 · 401 阅读 · 0 评论 -
C++ 虚函数&纯虚函数&抽象类&接口&虚基类
1. 多态在面向对象语言中,接口的多种不同实现方式即为多态。多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数。多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的。多态可以让父类的指针有“多种形态”,这是一种泛型技术。(所谓泛型技术,就是试图使用不变的代码来实现可变的算法)。2. 虚函数2.1虚函数定义在基类的类定转载 2017-04-16 15:02:44 · 739 阅读 · 0 评论 -
【数据结构与算法学习笔记】PART4 树形结构(二叉树,堆)
一颗野生二叉树//TODO原创 2016-08-06 17:00:13 · 888 阅读 · 0 评论 -
常用设计模式及其应用场景
设计模式是对设计原则的具体化。用江湖话说就是武林秘籍,总结出来的一些固定套路,编程界的《葵花宝典》。个人意见,编程过程中设计原则进行遵循,对设计模式进行借鉴。完全按照套路来,有时反而简单问题复杂化。常用的模式及其场景如下。1) 单例模式。单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个转载 2017-04-13 22:19:41 · 3680 阅读 · 0 评论 -
C++ STL 一般总结
一、一般介绍 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高转载 2017-03-23 16:03:50 · 392 阅读 · 0 评论 -
C++ 位运算:怎样使用位运算简洁高效的完成计算
Bit manipulation is the act of algorithmically manipulating bits or other pieces of data shorter than a word. Computer programming tasks that require bit manipulation include low-level device control,转载 2017-04-07 09:31:55 · 948 阅读 · 0 评论 -
重载、覆盖、隐藏的区别
学习过C++基础课程的人,对重载函数的概念相对熟悉一些,但是对覆盖和隐藏就相对陌生了,在编程技术的学习上,你会发现一个规律,很多知识点你都知道,但是一旦用起来,就常常出错,为什么呢?笔者一直都在探索这个问题。。 重载函数有哪些特性呢? 《高质量C++/C编程指南》已经清晰的列出了重载函数的特性: (1)相同的范围(在同一个类中); (原创 2017-03-03 16:58:58 · 450 阅读 · 0 评论 -
c++中vector的用法详解
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vector 还有一定要加上using name转载 2017-03-01 17:16:52 · 673 阅读 · 0 评论 -
C语言中手把手教你动态内存分配
动态内存分配常见的内存分配的错误先上一个内存分配的思维导图:便于联想想象,理解:首先我们介绍一下内存分配的方式:1:在静态存储区域中进行分配 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量122:在栈中进行分配 在执行函数时,函数内局部变量的存储单元都可以在栈上创转载 2017-09-28 21:22:08 · 457 阅读 · 0 评论