
c++学习
osDetach
只有孜孜不倦地求索,才有源源不断的收获
展开
-
c++ 函数对象的使用
函数对象就是像使用函数一样适用对象。比如:一个比较大小的类#include <iostream>using namespace std ;class A{ public ...原创 2020-01-30 00:03:25 · 811 阅读 · 0 评论 -
重写string类
mystring类实现的都是些常用的操作,字符串的累加,各种形式的赋值,迭代器的前置++和后置++等!通过写这个感觉主要熟悉了c++运算符重载的原理,另外就是熟悉了string对象的内置常用方法。头文件//mystring.h#pragma once#include<string.h>#include<strings.h>#include<stdlib....原创 2019-03-25 13:24:17 · 1447 阅读 · 0 评论 -
c++多态原理分析
在使用面向对象语言中,最最重要的三个思想就是继承,封装,多态.封装使得代码更加模块化,继承可以扩展现有代码的功能,多态,可以实现接口重用,降低代码的耦合性.那么我们今天要讨论的问题就是在C++中是怎样实现多态这一机制的.基础知识多态指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性,运行时多态性。a、编译时多态性:通过重载函数实现b...原创 2019-02-20 16:35:38 · 249 阅读 · 0 评论 -
C++实现生产者和消费者模型
#include <iostream>#include<thread>#include<mutex>#include<condition_variable>#include<queue>using namespace std;//任务队列queue<int>products ;mutex m ;condi...原创 2019-01-30 20:46:27 · 5389 阅读 · 0 评论 -
c++11最简单的线程池实现
线程池是在处理高并发任务中有比较重要的价值,他的实现最基本原理就生产者和消费者模型,刚开始就开一定数量的线程,以程序中的某些功能模块为对象,不断使用这些固定数量的线程调度进行处理,避免了在高并发情况下,不断开辟线程造成的进程资源消耗.下面是一个简单的线程池程序,主要使用C++11中一些简单的新特性的最简单的线程池实现.ThreadPool.h#pragma once#include &lt...原创 2019-01-31 19:53:46 · 12319 阅读 · 16 评论 -
数据结构课设总结
临近学期末,我们最后一个比较重要的任务就是做数据结构课设,我对于这戏课设还是比较重视的,因为这是对本学期我所学数据结构中算法一次的应用机会。本来想着挺难的,但做了之后吗,觉得没想像的那么难。做完之后就是一堆报告还有期末考,没机会总结。今天是放假第一天,我下午一点才起来,为了弥补内心的愧疚之感,做点事情吧!就总结下数据结构课设!我主要想总结的东西列在下面了。就照这个写吧!【1】必选建立哈夫...原创 2019-01-10 18:50:24 · 7444 阅读 · 2 评论 -
用c++创建一个最简单的哈希表(拉链法)
我们都知道,当我们要在一个集合中查找数据时,如果这个集合是顺序表且我们能确定要找的数据在顺序表中的位置的话,我们就能通过下标直接找到元素,这无非是我们要追求的最高效的查找策略!但是现实总是那么骨感,在大多数情况下,要在茫茫数据海洋中找某些关键信息,是不可能直接找到的。因为我们并不知道我们要找的数据与其所在位置之间是否存在某种关联。所以我们在存储数据时,建立如同顺序表形式的可以按照下标进行查...原创 2018-12-26 23:43:15 · 4746 阅读 · 0 评论 -
c++ 11 to achieve 【 Producer And Consumer Model】
Using c++ 11 to achieve producer and consumer model ,its simpler than i thought!The heart of the model is add data to the buffer area and get the data out from the buffer area(缓冲区)!And the two ...原创 2018-12-06 22:02:12 · 275 阅读 · 0 评论 -
哈夫曼报文编码和译码(涨姿势!!!)
前面已经将基本的哈夫曼编码和哈夫曼译码方法结合一些简单的应用作了总结,了解详情,本有为这块也就这样了,没得玩了!最后发现自己有点Too Young!Too Simple!试着做了一个题,搞了大概一天吧!才搞出来!具体题目如下:已知某段通信报文内容,对该报文进行哈弗曼编码,并计算平均码长。(1)统计报文中各字符出现的频度。(字符集范围为52个英文字母,空格,英文句号。报文长度&amp;lt;=200)...原创 2018-11-30 20:14:07 · 2329 阅读 · 2 评论 -
哈夫曼编码和译码&&c++重点知识的应用
又是一个摸鱼天,啥都没学就写了个哈夫曼编码和译码。将以前学的c++相关知识系统的用了一遍,反正是能想到啥,啥方便就用啥,但是说回来,也没省多少事。反正比用c语言写跟简单一点。先看题目原型吧!假设某通信报文的字符集由A,B,C,D,E,F这6个字符组成,它们在报文中出现的频度(频度均为整数值)。(1)构造一棵哈弗曼树,依次给出各字符编码结果。(2)给字符串进行编码。(3)给编码串进行译码。...原创 2018-11-24 21:33:16 · 1196 阅读 · 0 评论 -
浅析智能指针
今天又摸了一天鱼,对所学概率论等专业课真的提不起兴趣,上课光顾着看手机,上了一上午的课,看了一上午手机,真是当代败类大学生的典范呀!因为是星期四,不知道课程咋安排的,星期五一节课,老师有事,不上,所以直接放三天半的假!本来打算开黑,算了算了!!!要学的还是太多了,不敢那些没有意义的了!所以,中午一放学,我就在实验室完成了昨天没完成的博客,也是这几天一直纠结的网络编程方方面的问题,然后吃了午饭就跑图...原创 2018-11-23 12:10:12 · 232 阅读 · 2 评论 -
c++实现简单的string类
学得快,忘得快,老师讲完了运算符重载这一节然后就带我们开发一个字符串类,我的代码也是在理解的基础上跟着老师敲的,觉得太有意思了!!!赶紧写博客总结一下,加深理解,希望我这记性别让我失望!其实字符串也是可以理解为字符数组,所以在类中有两个属性,字符串长度len和字符指针,当定义mystring 类时可以为字符指针申请空间。并将向存入的字符拷贝到刚申请空间的字符数组里!然后定义一系列运算符重载函数,实...原创 2018-11-21 20:51:49 · 947 阅读 · 0 评论 -
java和c++观察者模式实现
观察者模式是一种比较常用的设计模式,,采用接口,封装类中动态变化的方法,定义对象间的依赖关系,一边但一个对象状态发生改变时,所有以来他的对象都发生改变。简单的说,就是一管多,即关键就是观察者和被观察者,学习这一部分看其他博客这样解释,就是多个屌丝追一个白富美的模式,多个屌丝就是所谓的观察者,白富美就是被观察者,白富美将追他的屌丝存到她的准男友表中,要是白富美生气,屌丝们都被通知到,然后想方设法讨...原创 2018-11-11 10:42:52 · 206 阅读 · 0 评论 -
哈夫曼树这个梗!!!
哈夫曼树时数据结构中树这一部分比较重要的知识点,把学校放在mooc上的这一部分教学视频看了几遍,终于动手实现了。其实也不是很难,但我还是搞了老半天,才将代码中的bug修复,觉得操作的数据有点多,弄不好就乱了!!!哈夫曼树又称最优二叉树,给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权...原创 2018-11-10 14:04:55 · 396 阅读 · 0 评论 -
啃食c++之路(1)
学习了这么长时间的c++,一直没有做总结,今天就从我现在所学的地方开始向前做一个总结。STL部分小结**Map**网上参考资料(记性不是很好,这些概念记不住)map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字...原创 2018-11-04 22:24:11 · 231 阅读 · 0 评论 -
啃食c++(简单设计模式)
简单工厂模式该设计模式是多态的一种应用实例,简单工厂模式是有一个生产对象决定生产那一产品,例如接下来的例子中,将friut作为父类,其子类就是各种水果,在这里就创建了两个子类引入,然后将各种水果对象作为生产者garden的私有数据成员,通过出生产者来获取想要的水果类型。#include<iostream>using namespace std;enum{APPLE = 0 ,...原创 2018-11-06 17:43:20 · 240 阅读 · 0 评论 -
啃食c++(2)
类模板入门类模板是c++泛性编程的重要组成部分,听了接近一个小时的讲课,只对老师的一句话印象比较深刻,不必早相同的轮子。恩,这句话已经概括了模板类的实质。个人理解模板类就是我们在c++编程时,有些数据类型是不一样,但是在操作这些类型的数据是,总会存在一些交集操作。这时我们通过模板类将这些相同的操作加以实现,在定义时,将这种类型的的数据定义成一个集合,可执行模板类里已经存在的方法。官宣人们需...原创 2018-11-06 15:23:35 · 175 阅读 · 0 评论