
C++编程
文章平均质量分 72
lbaihao
zephyr,data structure, algorithm, protocol,darknet,architecture
展开
-
Q格式的数据
相对于浮点数,Q格式指定了相应的小数位数和整数位数,在没有浮点运算的平台上,可以更快地对浮点数据进行处理,以及应用在需要恒定分辨率的程序中(浮点数的精度是会变化的)。类似于加法的操作,需要相同定标的两个Q格式数进行相减,但是不会存在溢出的情况。所以不难看出,的范围大小和精度;所以不难求出,的范围大小和精度;,从而达到所需要的数值范围和精度,这里可能有点抽象,下面继续看介绍。乘法同样需要考虑溢出的问题,这里通过。综上,可以得到有符号的范围是:,上面的程序其实并不安全,在一般的。需要注意的是,Q格式是。...原创 2022-08-25 19:42:05 · 1606 阅读 · 0 评论 -
监听者模式(listener)(c++实现)
监听者对大家来说可能并不陌生,所谓监听者就是用来监听自已感兴趣的事件的,当收到自已感兴趣的事件时会做出相应的反映。 它的应用是非常广的,比如win32的消息机制,它跟监听者模式就异曲同工,操作系统将产生的各种事件包装成消息(msg),该消息结构包装了发生的事件的描述信息,比如消息值,屏幕坐标等,然后将它投递到相应的进程中,当该进程收到该消息时会查看该msg结构中的信息,也就知道了发生了什转载 2016-11-04 23:21:27 · 2575 阅读 · 0 评论 -
C++中string 函数的使用
一、 erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last );也就是说有三种用法:(1)erase(pos,n); 删除从pos开原创 2016-11-05 14:40:53 · 482 阅读 · 0 评论 -
二级指针的作用详解
一、概念在如下的A指向B、B指向C的指向关系中:首先C是"一段内容",比如你用malloc或者new分配了一块内存,然后塞进去"一段内容",那就是C了。C的起始地址是0x00000008。B是一个指针变量,其中存放着C的地址,但是B也要占空间的啊,所以B也有地址,B的起始地址是0x00000004,但是B内存中存放的是C的地址,所以B里面的内容就是0x0000000转载 2016-10-15 22:47:49 · 5803 阅读 · 0 评论 -
<监听器模式>在C++ 与 Java 之间实现的差异
前言: 关于各种语言孰优孰劣的讨论在软件界就是个没完没了的话题,今天我决定也来掺和下。不过我想探讨的不是哪种语言的性能如何,钱途如何,而是站在语言本身特性的基础上中肯地比较探讨。因为现在工作用的是C/C++, 以前接触过Java,于是我就以这两门语言作为我的对比语言。本文目的: 我就以监听器的实现为例演示各自的实现代码,认识下Java与C++转载 2016-11-06 22:25:20 · 1340 阅读 · 0 评论 -
最常用的设计模式---观察者模式(C++实现)
监听者对大家来说可能并不陌生,所谓监听者就是用来监听自已感兴趣的事件的,当收到自已感兴趣的事件时会做出相应的反映。 它的应用是非常广的,比如win32的消息机制,它跟监听者模式就异曲同工,操作系统将产生的各种事件包装成消息(msg),该消息结构包装了发生的事件的描述信息,比如消息值,屏幕坐标等,然后将它投递到相应的进程中,当该进程收到该消息时会查看该msg结构中的信息,也就知道了发生了什转载 2016-11-04 23:27:17 · 1655 阅读 · 0 评论 -
设计模式---观察者模式(C++实现)
#include "stdafx.h"#include #include #include #include using namespace std;////// Generated by StarUML(tm) C++ Add-In//// @ Project : Untitled// @ File Name : INotifier.h//原创 2016-11-08 23:34:44 · 319 阅读 · 0 评论 -
C++ list 类学习笔记
双向循环链表list list是双向循环链表,,每一个元素都知道前面一个元素和后面一个元素。在STL中,list和vector一样,是两个常被使用的容器。和vector不一样的是,list不支持对元素的任意存取。list中提供的成员函数与vector类似,不过list提供对表首元素的操作push_front、pop_front,这是vector不具备的。和vector另一点不转载 2016-11-08 23:53:00 · 383 阅读 · 0 评论 -
C++ vector 类学习笔记
vector简介 vector是STL中最常见的容器,它是一种顺序容器,支持随机访问。vector是一块连续分配的内存,从数据安排的角度来讲,和数组极其相似,不同的地方就是:数组是静态分配空间,一旦分配了空间的大小,就不可再改变了;而vector是动态分配空间,随着元素的不断插入,它会按照自身的一套机制不断扩充自身的容量。 vector的扩充机制:按照容器现在容量的一倍进转载 2016-11-08 23:54:47 · 478 阅读 · 0 评论 -
c++多线程编程
一直对多线程编程这一块很陌生,决定花一点时间整理一下。os:ubuntu 10.04 c++1.最基础,进程同时创建5个线程,各自调用同一个函数[html] view plain copy #include iostream> #include pthread.h> //多线程相关操作头文件,可移植众多平台 using namespace std;转载 2016-11-04 21:14:39 · 309 阅读 · 0 评论 -
C++深复制与浅复制(七)
#include #include using namespace std;class CDemo{public:CDemo(int pa,char *cstr){this->a = pa;this->str = new char[1024];strcpy(this->str,cstr);}CDemo(CDemo & obj){c原创 2015-10-06 17:34:41 · 384 阅读 · 0 评论 -
C++ 线程(一)
#include #include #include using std::cin;using std::cout;using std::endl;typedef void *HANDLE;class Thread{public: void start(); virtual void run(); HANDL原创 2015-07-24 13:50:50 · 494 阅读 · 0 评论 -
C++ 线程(二)
#include #include #include #include using namespace std; class Runnable { public: virtual ~Runnable() {}; virtual void Run() = 0; }; class CThread : public原创 2015-07-24 17:40:49 · 458 阅读 · 0 评论 -
C++(四)动态绑定
多态性从派生类到基类转换引用或指针既可以指向基类对象也可以指向派生类对象只有通过指针或引用调用虚函数才会发生动态绑定原创 2015-10-04 15:38:17 · 456 阅读 · 0 评论 -
C++ 构造函数与析构函数(五)
派生类的析构函数 :对派生类的新增成员进行清理调用成员对象析构函数调用基类析构函数#include using namespace std;class Base{public:Base() {b1 = b2 = 0;}Base(int i, int j);~Base();void Print(){cout }private原创 2015-10-05 13:16:54 · 481 阅读 · 0 评论 -
C++转换与继承;友元friend与继承;静态成员与继承(六)
1.派生类 -> 基类引用转换对象转换2.基类 -> 派生类自动转换不存在强制转换原创 2015-10-05 13:49:10 · 593 阅读 · 0 评论 -
C++ 复制构造函数和赋值操作符
复制构造函数的适用情况 1.对象的定义形式 - 复制初始化 2.形参与返回值 3.初始化容器#include #include #include using namespace std;class Sales_item{public:Sales_item():units_sold(0),revenue(0.0){cout原创 2015-10-06 18:31:07 · 419 阅读 · 0 评论 -
管理指针成员(九)
三种方法1.常规指针类(浅复制)2.智能指针类(计数类)3.值型类(深复制)===================================class AHasPtr{public:AHasPtr(int *p,int i):ptr(p),val(i){}int *get_prt() const { return ptr;}int ge原创 2015-10-06 19:17:58 · 418 阅读 · 0 评论 -
C++ 线程(三)
// hthread.cpp : Defines the entry point for the console application.//// thread_test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #原创 2015-07-24 17:44:32 · 759 阅读 · 0 评论