![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
风赤
qq_1562794938
展开
-
Effective C++ 55个做法
声明:本内容来自该书籍。1.让自己习惯C++1. 视C++为一个语言联邦2. 尽量以const、enum、inline 替换#define3. 尽可能使用const4. 这里写自定义目录标题2.析构、构造、赋值运算5.了解C++默默编写并调用哪些函数6.若不想使用编译器自动生成的函数,就该明确拒绝7.为多态基类声明virtual析构函数8.别让异常逃离析构函数9.绝不在构造和析构过程中调用virtual函数10.领operator= 返回一个reference to *this1原创 2022-05-04 20:00:31 · 188 阅读 · 0 评论 -
符号表
符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。对于符号表组织、构造和管理方法的...原创 2020-03-11 11:24:07 · 445 阅读 · 0 评论 -
算法设计与分析第二版第一章笔记
第一章概论1.1算法的概念1.1.1什么是算法1.1.2算法描述1.1.3算法和数据结构1.1.4算法设计的基本步骤1.2算法分析1.2.1算法时间复杂度分析1.2.2算法空间复杂度分析1.3算法设计工具-STL1.3.1 STL概述1.3.2常用的STL容器1.3.3 STL在算法设计中的应用...原创 2020-04-22 23:20:00 · 843 阅读 · 0 评论 -
分治法
采用递归思想 把大问题分解成一些小问题然后利用小问题的解方便地构造出大问题的解.分治法所能解决问题所具有的特征(1)问题缩小到一定程度就能很容易的解决(2)问题可以分解成许多相似的小问题(3)子问题的解可以合并为该问题的解(4)每个子弹问题都是相互独立的即子问题之间 不包含公共的子问题.1绝大多数的问题都具有。2.分治法的前提。3.能否利用分治法的必备特征只具备了12可以考虑使用...原创 2020-05-05 18:40:43 · 205 阅读 · 0 评论 -
图算法设计
9.1求图的最小生成树图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树。求最小生成树主要有普里姆算法和克鲁斯卡尔算法用普里姆算法构造最小生成树普里姆算法是一种构造性算法。9.2求图的最短路径9.3求解旅行商问题9.4网络流...原创 2020-04-30 14:59:31 · 418 阅读 · 0 评论 -
贪心法
贪心法 Greedy algorithms 是一种典型的算法设计策略,用于求解问题的最优解贪心法总是做出在当前看来最好的选择,这个局部最优选择权依赖以前的决策,不依赖于以后的决策。每一步用作决策依据的选择准则被称为最优量度标准或者贪心准则。局部最优解到整体最优解求解活动安排问题求解背包问题求解最优装载问题求解田忌赛马问题求解多机调度问题7.7哈夫曼编码由n个叶子结点可以构造出多...原创 2020-05-05 18:44:01 · 182 阅读 · 0 评论 -
动态规划
动态规划dp是将多个阶段决策问题进行公式化的一种技术。8.2 求解整数拆分问题8.3求解最大连续子序列和问题8.4求解三角形最小路径问题8.5求解最长公共子序列问题。8.6求解最长递增子序列问题8.7求解编辑距离问题!!!!!!!!!8.8求解o/1背包问题8.9求解完全背包问题8.10求解资源分配问题8.11求解会议安排问题8.12滚动数组...原创 2020-05-05 18:42:22 · 122 阅读 · 0 评论 -
分支限界法
分支限界法分枝限界法类似于回溯法回溯法是找出解空间树满足约束条件的所有解但分支限界法的求解是找出约束条件的一个解原创 2020-05-05 18:45:15 · 219 阅读 · 0 评论 -
变量名规定(windows程序设计)
定义一个常量,一般常量名应全大写g_前缀表示全局变量sz表示类型为字符串title是标题的意思m_前缀表示类的成员变量n表示类型为长整型error code是错误代码变量默认为局部变量,无需任何限定范围的前缀,b表示类型为布尔型#define MAX_BUFFER 256char g_szTitle[MAX_BUFFER]int m_nErrorCode;BOOOL bResult;...原创 2020-05-26 08:57:04 · 259 阅读 · 0 评论 -
Qt内存泄露工具Heob安装使用
官方heob链接Qt heob官方文档heob官方下载链接个人资源免费下载,可以直接去下载1.安装Qt界面工具包含需要把heob path的路径进行引入。2.使用使用debug运行程序,出现cmd窗口关闭程序,生成测试报告,leaks.xml文件并且在Qt creator 中可以看到相关信息...原创 2022-02-25 17:13:11 · 5152 阅读 · 10 评论 -
常见排序算法
堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。桶排序是计数排序的升级版。插入排序通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入 ,如此重复,直至完成序列排序。(2)统计数组中每个值为i的元素出现的次数,存入数组C的第i项。转载 2021-10-08 14:59:43 · 78 阅读 · 0 评论 -
线性结构、树结构、图结构
1.数组和顺序表2.单链表3.循环链表4.双向链表5.队列和栈6.树结构的特性7.二叉树的遍历8.哈夫曼树和哈夫曼编码9.二叉树排序10.图结构的特性11.图的遍历原创 2021-10-08 14:56:00 · 891 阅读 · 0 评论 -
面向对象、模板与泛型编程
面向对象、模板与泛型编程1.面向对象基本概念2.类的声明3.构造函数和析构函数4.函数重载5.运算符重载6.继承7.虚继承8.多态与虚函数9.模板10. 顺序容器11.容器适配器12.关联容器13.智能指针...原创 2021-10-08 14:47:41 · 153 阅读 · 0 评论 -
内存管理与字符串
内存管理与字符串1.堆内存与栈内存2.内存泄漏3.C标准字符串函数4.常见字符串算法设计原创 2021-10-08 14:40:30 · 74 阅读 · 0 评论 -
指针和引用
指针和引用1.指针以及应用2.指针常量与常量指针3.指针数组与数组指针4.指向指针的指针5.函数指针6.this指针7.空指针和野指针8.引用原创 2021-10-08 14:37:24 · 38 阅读 · 0 评论 -
C++知识复习(一)
C++程序设计基础1.程序的编译和执行2.变量3.条件语句和循环语句4.宏定义和内联5.sizeof的使用6.内存分配7.位运算8.main函数原创 2021-10-08 14:31:33 · 58 阅读 · 0 评论 -
音视频上下文配置及avcodec_send_packet和avcodec_receive_frame完成音视频解码
#include <iostream>#include <thread>extern "C"{#include "libavformat/avformat.h"#include "libavcodec/avcodec.h"}using namespace std;#pragma comment(lib,"avformat.lib")#pragma comment(lib,"avutil.lib")#pragma comment(lib,"avcodec.lib")原创 2021-04-06 10:26:06 · 523 阅读 · 0 评论 -
ffmpeg的基本知识
一、什么是Mpeg-4MPEG-4是MPEG格式的一个压缩标准。MPEG-4标准主要应用于视像电话(Video Phone),视像电子邮件(Video Email)和电子新闻(ElectronicNews)等,其传输速率要求较低,在4800-64000bits/sec之间,分辨率为176X144。MPEG-4利用很窄的带宽,通过帧重建技术,压缩和传输数据,以求以最少的数据获得最佳的图像质量。常见的封装格式...原创 2021-03-30 10:04:39 · 1512 阅读 · 0 评论 -
双击文件实现自动关联
实现的目的:通过点击自己自定义的文件,打开自己编写的系统。要解决问题的步骤分成两步。第一步: 要实现的步骤必须要先修改注册表,这样你才能 双击文件实现文件与系统 的关联。第二步: 假如你已经修改注册表已经成功,你双击文件是会向程序的main函数传递两个参数argv[0]、argv[1]。 第一个参数 为程序的exe文件路径,第二个为你双击文件的路径。因此你可以在你所写的程序中通过argv[1]来打开文件。总结:通过修改注册表,在获得argv[1]参数来实现我们需要实现的功能。第一步注册表修改详细步原创 2020-10-24 17:28:19 · 737 阅读 · 0 评论 -
c++设计模式对象性能(六)
对象性能模式面向对象很好的解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来讲,面向对象的成本都可以忽略不计。但是某些情况,买你想对象所带来的成本必须谨慎处理。典型模式SingletonFlyweightSingleton单件模式动机(Motivation)在软件系统中,经常有这样一些特殊的类,必须保证他们在西戎中只存在一个实例,才能确保他们的逻辑正确性,以及良好的效率。...原创 2020-09-21 19:22:32 · 72 阅读 · 0 评论 -
C++设计模式对象创建模式(五)
对象创建模式通过“对象创建”’模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。他是接口抽象之后的第一步工作。典型模式Factory MethodAbstract FactoryPrototypeBuilderFactory Method工厂方法动机(Motivation)在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。如何应对这种变化?如何绕过常规的对象创建方法原创 2020-09-13 20:13:32 · 139 阅读 · 1 评论 -
C++设计模式单一职责模式(四)
单一职责模式:在软件组件的设计中,如果责任划分不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式DecoratorBridge...原创 2020-09-13 19:24:22 · 125 阅读 · 0 评论 -
C++设计模式组件协同(三)
GOF分类从目的来看:创建型(Creational)模式,将对象的创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。行为型(Behavioral)模式:通过类继承或者对象来划分类与对象间的职责,从而应对需求变化为多个交互对象带来的冲击。从范围来看类模式处理与子类的静态关系对象模式处理对象间的动态关系从封装变化角度对模式分类组件原创 2020-09-13 16:38:42 · 237 阅读 · 0 评论 -
c++设计模式面向对象设计原则(二)
面向对象设计原则面向对象设计最大的优势在于抵御变化!什么认识下什么是面向对象理解隔离变化从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小。各司其职从微观层面来看,面向对象的方式更强调各个类的“责任”由于需求变化导致的新增类型不应该影响原来类型的实现——是所谓各负其责。对象是什么从语言实现层面来看,对象封装了代码和数据从规格层面来看,对象是一系列可被使用的公共接口。从概念层面讲,对象是某种拥有责任的抽象。面向对象设计的原则依赖倒置原则(DIP)原创 2020-09-13 11:15:32 · 113 阅读 · 0 评论 -
C++设计模式(一)
设计模式实现的目标理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握GOF核心设计模式什么是设计模式每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。——Christopher Alexander对于程序员来说,要有底层思维和抽象思维。底层思维:向下,如何把握机器底层从微观理解对象构造。主要有以下四点:语言构造 、编译转换、内存模型、运行时机制。抽象思维:向上,如何将我们的周围世界抽象为程原创 2020-09-13 08:57:34 · 152 阅读 · 0 评论 -
C++中const的基本用法
首先来个常见的面试题const与define的区别?1.编译器处理不同2.存储方式不同3.类型和安全检查不同4.定义域不同5.是否可以做函数参数6.定义后能否取消宏定义可以通过#undef来使之前的宏定义失效const常量定义后将在定义域内永久有效关于const的基本使用用法1.常对象形式:类名 const 对象名[(实参表)] 或者 const 类名 对象名 [(实参表)]注意: 1)常对象成员必须有初值,定义之时必须进行初始化不能在改变。 2)该对象只能原创 2020-09-07 23:12:27 · 95 阅读 · 0 评论 -
VS Code 使用SFTP、GDB调试C++程序
SFTP安装参见官方步骤Ctrl+Shift+P on Windows/Linux or Cmd+Shift+P on Mac open command palette, run SFTP: config command.Simple{ "name": "big server", "host": "hostlocal", "protocol": "sftp", "port": 22, "username": "root", "remotePath":原创 2020-09-01 17:26:58 · 199 阅读 · 0 评论 -
c++/c语言(高质量程序设计指南林锐建议总结)
第四章C++/C程序设计入门. 4.1 在使用运算符&&的表达式中,要尽量把最可能为false中的子表达式放在 &&的左边;同样在使用运算符“||”的表达式中,要尽量把最可能为true的表达式放在“||”的左边。因为c++/c对逻辑表达式的判断采取“突然死亡法”(猝死法); ***4.2*** 在if/else中,要尽量把为true的概率较高的条件的条件判断置...原创 2020-03-28 20:29:57 · 1232 阅读 · 0 评论