经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 C++
详解C++中typedef 和 #define 的区别

详解C++中typedef 和 #define 的区别

1、执行上不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能。 #define 则是宏定义,发生在预处理阶段,也就是编译之前,它只进行简单而机械的字符串替换,而不进行任何检查。 例如:typedef 会做相应的类型检查 ty...[2021/9/6]

C++哈希应用的位图和布隆过滤器

目录C++哈希应用的位图和布隆过滤器 一、位图1.位图的概念2.位图的面试题3.位图的实现4.位图的应用二、布隆过滤器1.布隆过滤器的提出2.布隆过滤器的概念3.布隆过滤器的插入4.布隆过滤器的查找 5.布隆过滤器的删除6.布隆过滤器的优点和缺点三、海量数据面试题1.哈希切割 2.位图应用3.布隆过...[2021/9/6]

C++项目基于HuffmanTree实现文件的压缩与解压缩功能

C++项目基于HuffmanTree实现文件的压缩与解压缩功能

目录前言一、文件压缩1.文件压缩的概念2.为什么需要压缩3.压缩的分类4.压缩的方法二、HuffmanTree文件压缩与解压缩1.HuffmanTree的概念2.HuffmanTree的构建3.文件压缩4.文件解压缩三、HuffmanTree压缩解压缩碰到的问题1.创建优先级队列要使用自己写的仿函数...[2021/8/26]

C++11新特性之变长参数模板详解

目录C++11 变长参数模板 变长函数参数包 如何解参数包 sizeof()获得函数参数个数 递归模板函数 变参模板展开 结论 C++11 变长参数模板 在C++11之前,无论是类模板 还是函数模板,都只能按其指定的样子,接受一组固定数量的模板参数; 这已经大大提升了代码的复用! ...[2021/8/26]

超详细讲解Linux C++多线程同步的方式

目录一.互斥锁1.互斥锁的初始化2.互斥锁的相关属性及分类3.测试加锁函数二.条件变量1.条件变量的相关函数三.读写锁1)初始化的销毁读写锁2)以写的方式获取锁,以读的方式获取锁,释放读写锁四.信号量1)信号量初始化2)信号量值的加减3)对信号量进行清理 背景问题:在特定的应用场景下,多线程不进行同...[2021/8/26]

C++内存管理看这一篇就够了

目录1 内存分布图2 C语言和C++内存分配实现2.1 C语言实现2.2 C++实现new的原理delete的原理3 C语言和C++内存管理区别4 内存泄漏总结 1 内存分布图 注意: 1.向下生长:地址由高到低 2.向上生长:地址由低到高 3.栈又叫堆栈,非静态局部变量/...[2021/8/16]

结构体对齐的规则详解及C++代码验证

结构体对齐的规则详解及C++代码验证

目录基本概念结构体对齐的规则程序验证 基本概念 CPU一次能读取多少个字节的数据主要是看数据总线是多少位的,16位CPU一次能读取2个字节,32位CPU一次能读取4个字节,64位CPU一次能读取8个字节。并且不能跨内存区间访问,这句话的意思可以理解为,如果CPU是32位的话,那么可以将整个内存区...[2021/8/16]

C++实现LeetCode(211.添加和查找单词-数据结构设计)

[LeetCode] 211.Add and Search Word - Data structure design 添加和查找单词-数据结构设计 Design a data structure that supports the following two operations: vo...[2021/8/9]

C++ throw关键字实现抛出异常和异常规范

目录一个动态数组的例子 throw 用作异常规范 1) 虚函数中的异常规范 2) 异常规范与函数定义和函数声明 请抛弃异常规范,不要再使用它 在《C++异常入门》一节中,我们讲到了 C++ 异常处理的流程,具体为: 抛出(Throw)--> 检测(Try) --> 捕获(C...[2021/8/9]

C++异常处理入门(try和catch)

目录捕获异常 发生异常的位置 开发程序是一项“烧脑”的工作,程序员不但要经过长期的知识学习和思维训练,还要做到一丝不苟,注意每一个细节和边界。即使这样,也不能防止程序出错。 专家指出,长期作息不规律 + 用脑过度的危害很大,可能会诱发神经衰弱、失眠等疾病。我就是受害者之一,曾被失眠困扰了好...[2021/8/9]

C++实现LeetCode(190.颠倒二进制位)

C++实现LeetCode(190.颠倒二进制位)

[LeetCode] 190. Reverse Bits 颠倒二进制位 Reverse bits of a given 32 bits unsigned integer. Example 1: Input: 00000010100101000001111010011100 Outp...[2021/8/5]

C++实现LeetCode(191.位1的个数)

[LeetCode] 191.Number of 1 Bits 位1的个数 Write a function that takes an unsigned integer and returns the number of ''1'' bits it has (also known as the...[2021/8/5]

示例详解C++语言中的命名空间 (namespace)

目录前言1. 命名空间 2. using 指令 3. 不连续的命名空间 4. 嵌套的命名空间 5. 命名空间内变量、函数、全局变量的作用域5.1 using namespace first_space;5.2 using namespace first_space::second_space;总结 ...[2021/8/5]

浅谈C++类型转换几种情况

目录0. 类型转换的原理1. 初始化和赋值时进行的转换2. 以{}方式初始化时进行的转换(C++11新增)3. 表达式中的转换4. 传递参数时的转换5. 强制类型转换6. 使用auto让编译器自己推断变量类型 0. 类型转换的原理 在进行下面的学习前,我觉得有比较知道不同类型是怎么进行转换的。 ...[2021/8/5]

C++实现LeetCode(309.买股票的最佳时间含冷冻期)

C++实现LeetCode(309.买股票的最佳时间含冷冻期)

[LeetCode] 309.Best Time to Buy and Sell Stock with Cooldown 买股票的最佳时间含冷冻期 Say you have an array for which the ith element is the price of a given st...[2021/8/5]

C++实现LeetCode(186.翻转字符串中的单词之二)

[LeetCode] 186. Reverse Words in a String II 翻转字符串中的单词之二 Given an input string , reverse the string word by word.  Example: Input:&#...[2021/8/4]

C++实现LeetCode(557.翻转字符串中的单词之三)

[LeetCode] 557.Reverse Words in a String III 翻转字符串中的单词之三 Given a string, you need to reverse the order of characters in each word within a sentence ...[2021/8/4]

C++强制类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)

目录1. c强制转换与c++强制转换 2. static_cast、dynamic_cast、const_cast、reinterpret_cast dynamic_cast const_cast reinterpret_cast 3. c++强制转换注意事项 1. c强制转换与c++强制转换 ...[2021/8/4]

C++变量引用的概念介绍

本篇介绍的变量引用与之前介绍的指针不是同一概念,它们有本质的区分: 1)不存在空引用。引用必须连接到一块合法的内存。 2)一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。 3)引用必须在创建时被初始化。指针可以在任何时间被初始化。 下面代码...[2021/8/4]

C++实现LeetCode(179.最大组合数)

[LeetCode] 179. Largest Number 最大组合数 Given a list of non negative integers, arrange them such that they form the largest number. Example 1: In...[2021/8/4]

C++索引越界的解决方法

目录1. 动态数组2.静态数组 避免"索引越界"错误的规则如下(针对C++): 不要使用静态或动态分配的数组,改用array或vector模板 不要使用带方括号的new和delete操作符,让vector模板为多个元素分配内存 使用scpp::vector代替std...[2021/8/4]

C++踩坑实战之构造和析构函数

目录前言构造函数 通过构造函数实现的类型转换 派生类的构造函数 析构函数 继承中的析构函数 应用 总结 前言 我是练习时长一年的 C++ 个人练习生,喜欢野指针、模板报错和未定义行为(undefined behavior)。之前在写设计模式的『工厂模式』时,一脚踩到了构造、继承和 new 组合起...[2021/7/26]

VsCode配置C++/Cmake的步骤详解

Reference https: zhuanlan.zhihu.com/p/87864677 步骤 1、安装VSCode,直接在官网下载 安装即可 2、配置C/C++环境,安装MinGW编译器,也可以在 官网 下载安装 3、MinGW编译器刚才下载的是个下载器,直接双击安装,配置X8...[2021/7/26]

C++实现LeetCode(100.判断相同树)

[LeetCode] 100. Same Tree 判断相同树 Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the...[2021/7/21]

C++实现LeetCode(102.二叉树层序遍历)

[LeetCode] 102. Binary Tree Level Order Traversal 二叉树层序遍历 Given a binary tree, return the level order traversal of its nodes'' values. (ie...[2021/7/21]

C++实现LeetCode(101.判断对称树)

[LeetCode] 101.Symmetric Tree 判断对称树 Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, th...[2021/7/21]

C++实现LeetCode(103.二叉树的之字形层序遍历)

C++实现LeetCode(103.二叉树的之字形层序遍历)

[LeetCode] 103. Binary Tree Zigzag Level Order Traversal 二叉树的之字形层序遍历 Given a binary tree, return the zigzag level order traversal of its n...[2021/7/21]

C++实现LeetCode(104.二叉树的最大深度)

[LeetCode] 104. Maximum Depth of Binary Tree 二叉树的最大深度 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along ...[2021/7/21]

C++之Qt5双缓冲机制案例教程

1. 双缓冲机制 所谓双缓冲机制,是指在绘制控件时,首先将要绘制的内容绘制在一个图片中,再将图片一次性地绘制到控件上。 在早期的Qt版本中,若直接在控件上进行绘制工作,则在控件重绘时会产生闪烁的现象,控件重绘频繁时,闪烁尤为明显。 双缓冲机制可以有效地消除这种闪烁现象。自Qt 5版本之后...[2021/7/21]

C++实现LeetCode(97.交织相错的字符串)

C++实现LeetCode(97.交织相错的字符串)

[LeetCode] 97.Interleaving String 交织相错的字符串 Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 ...[2021/7/19]

C++实现LeetCode(139.拆分词句)

[LeetCode] 139. Word Break 拆分词句 Given a non-empty string s and a dictionary wordDict containing a list of non-emp...[2021/7/19]

C++实现LeetCode(98.验证二叉搜索树)

[LeetCode] 98. Validate Binary Search Tree 验证二叉搜索树 Given a binary tree, determine if it is a valid binary search tree (BST). A ume a BST is define...[2021/7/19]

C++实现LeetCode(99.复原二叉搜索树)

C++实现LeetCode(99.复原二叉搜索树)

[LeetCode] 99. Recover Binary Search Tree 复原二叉搜索树 Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without chan...[2021/7/19]

C++实现LeetCode(96.独一无二的二叉搜索树)

C++实现LeetCode(96.独一无二的二叉搜索树)

[LeetCode] 96. Unique Binary Search Trees 独一无二的二叉搜索树 Given n, how many structurally unique BST''s (binary search trees) that store va...[2021/7/19]

C++实现LeetCode(241.添加括号的不同方式)

[LeetCode] 241. Different Ways to Add Parentheses 添加括号的不同方式 Given a string of numbers and operators, return all po ible results from computing all t...[2021/7/19]

C++实现LeetCode(312.打气球游戏)

[LeetCode] 312. Burst Balloons 打气球游戏 Given n balloons, indexed from 0 to n-1. Each balloon is painted with a number on it r...[2021/7/19]

C++实现LeetCode(91.解码方法)

C++实现LeetCode(91.解码方法)

[LeetCode] 91. Decode Ways 解码方法 A me age containing letters from A-Z is being encoded to numbers using the following mapping: ''A'' -&...[2021/7/19]

c++中的继承关系

1 什么是继承 继承概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。   面向对象的继承关系指类之...[2021/7/19]

C++实现LeetCode(93.复原IP地址)

[LeetCode] 93.Restore IP Addre es 复原IP地址 Given a string containing only digits, restore it by returning all po ible valid IP addre combinations. ...[2021/7/19]

C++基于灰度图上色GrayToColorFromOther的实现

目录场景需求功能函数代码C++测试代码 场景需求        之前有提到给灰度图上色的需求,在此基础上,还有一种需求,就是基于另一张参考灰度图的色板来给当前的灰度图上色,比如参考灰度图的数值区间为-10到10,颜色从蓝到绿再到红,而当前的灰度图的数据区间...[2021/7/19]

C++实现LeetCode(137.单独的数字之二)

[LeetCode] 137. Single Number II 单独的数字之二 Given a non-empty array of integers, every element appears three times except for one, ...[2021/7/19]

线段树详解以及C++实现代码

线段树详解以及C++实现代码

目录应用场景算法思想查询操作修改操作算法实现建树查询修改总结 应用场景 假设有这样的问题:有n个数,m次操作,操作分为:修改某一个数或者查询一段区间的值 分析下,如果针对数组元素的修改可以是O(1)完成,求某个区间值需要O(n)才可以完成,如果m和n都很大的情况,这个复杂度就很难接受了。 ...[2021/7/19]

C++ 递归遍历文件并计算MD5的实例代码

C++ 递归遍历文件并计算MD5的实例代码

递归遍历文件夹,对比文件md5 首先,需要引用 md5 的相关代码,参考这篇文章,防止链接内容被删除,这里再记录一次: md5.h #ifndef MD5_H #define MD5_H #include <string> ...[2021/7/19]

C++实现LeetCode(11.装最多水的容器)

C++实现LeetCode(11.装最多水的容器)

[LeetCode] 11. Container With Most Water 装最多水的容器 Given n non-negative integers a1, a2, ..., an , where each represents...[2021/7/12]

C++实现LeetCode(8.字符串转为整数)

[LeetCode] 8. String to Integer (atoi) 字符串转为整数 Implement atoi which converts a string to an integer. The function first discards as...[2021/7/12]

C++实现LeetCode(验证数字)

[LeetCode] Valid Number 验证数字 Validate if a given string can be interpreted as a decimal number. Some examples: "0" => true " 0...[2021/7/12]

c++ Bellman-Ford算法的具体实现

Bellman-Ford算法用于解决有边数限制的最短路问题,且可以应对有负边权的图 其时间复杂度为O(nm),效率较低 代码实现: #include<iostream> #include<cstring> #include<algorit...[2021/6/28]

C++重载运算符实现分数加减乘除

本文实例为大家分享了C++重载运算符实现分数加减乘除的具体代码,供大家参考,具体内容如下 实现结果如下图所示: 代码如下所示: #include <iostream> using namespace std; cla Rational { ...[2021/6/28]

32.qt quick-模仿QQ登录界面实现3D旋转(Rotation、Flipable)

 要想模仿QQ登录界面的3D旋转,我们需要学习Rotation和Flipable.由于没找到QQ的资源图,所以我们以两个图片为例模仿QQ的3D旋转,如下图所示: 最终效果如下所示:   1.Rotation介绍 Rotation类型提供了一种通过旋转类型转换旋...[2021/6/28]

C++容器汇编

C++容器汇编

容器汇编1 比较简单的若干容器 1. string begin 可以得到对象起始点 end 可以得到对象的结束点 empty 可以得到容器是否为空 size 可以得到容器的大小 swap 可以和另外一个容器交换其内容 2. vector 可以使用中括号的下标来访问其成员(同 string) ...[2021/6/28]

336
2
记录数:2627 页数:1/5312345678910下一页尾页
加载更多
 友情链接: NPS