C++学习
文章平均质量分 73
去留意
也许是不知梦的缘故,琉璃之人追逐幻影。
展开
-
C++ 使用函数对象解决函数参数绑定问题
函数参数绑定使用到的情景 我们在程序开发中经常遇到需要传入函数的参数与实际期望不符合的情况。如:需要传入的是无参函数int fun(int b),但是接口只允许传入int fun(void)。这时候就需要用到函数对象来解决。例子:// 需要调用的接口 只允许传入无参函数template<typename T>void call_fun(T fun){ fun();}// 正常调用void Myprintf(){ // ....你的操作 cout &l原创 2021-10-25 20:52:32 · 679 阅读 · 0 评论 -
leetcode 马数字转整数 最长回文子串
leetcode 简单|普通简单 罗马数字转整数题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做原创 2021-10-15 18:29:02 · 199 阅读 · 0 评论 -
力扣图解算法数据结构学习笔记C++篇
图解算法数据结构数据结构剑指 Offer 05. 替换空格题目要求:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."解法1-要点重新定义数组长度:len = len+2*spaceNumber;逆序修改数组内容;(逆序很重要)-(遇到字符,后移,遇到空格替换为%20[修改3个字符]);解法1-代码class Solution {public: string repl原创 2021-07-22 20:42:16 · 351 阅读 · 4 评论 -
Lootcode数组和字符串学习笔记C++篇
数组和字符串数组简介寻找数组的中心索引题目要求给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。解法-要点psum*2 + nums[i] == sum。即此位置前所有原创 2021-07-22 20:40:46 · 364 阅读 · 1 评论 -
指针使用守则以及建议
指针使用守则以及建议守则1:每一个指针调用前都要有所指向的空间(即地址);守则2:要修改指针时需要传入更高一级指针;建议:不要使用指针。法则及真理详解守则1:每一个指针调用前都要有所指向的空间(即地址);当你新建一个指针的时候,都要记住需要为其分配空间,最常见使用malloc函数分配空间。没有分配空间之前不要使用它。指针与地址空间是对应的。没有分配地址的指针指向的空间是不安全的,可能出现问题。只有指针指向的空间是确定的、自己分配的这时候指针才是安全的。守则2:要修改指针时需要传入更高一级指针;原创 2021-05-18 21:16:58 · 394 阅读 · 2 评论 -
求斐波那契数列的两种方式
斐波那契数列递归思路:一个递归函数一定可以分解为基础与递归两个部分。而递归部分每次调用都要使其参数向基础部分接近。对于简单的递归函数,基础部分就是if的部分,递归部分就是return部分。斐波那契数列的函数表示为:f(x)={1x=0,x=1f(n−1)+f(n−2)x>1f(x)=\begin{cases}1& \text{x=0,x=1}\\f(n-1)+f(n-2)& \text{x>1}\end{cases}f(x)={1f(n−1)+f(n−2)x原创 2021-02-20 18:26:42 · 270 阅读 · 0 评论 -
C++函数探幽(内联、引用)
函数探幽执行到函数调用指令时,程序将在函数调用后立即存储该指令的地址,并将函数参数复制到堆栈(为此保留的内存块),跳回到地址被保存的指令处(这与阅读文章时停下来看脚注,并在阅读完脚注后返回到以前阅读的地方类似)。来回跳跃并记录跳跃位置意味着以前使用函数时需要一定开销。内联函数内联函数就是说编译器将使用相应的函数代码替换函数调用。(用空间换时间)要使用:在函数声明前加上关键字inline;在函数定义前加上关键字inline;通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应原创 2020-11-29 01:54:01 · 206 阅读 · 0 评论 -
C++查漏补缺(文本输入、二维指针、函数指针)
C++查漏补缺文本输入很多操作系统(Unix、Linux、Windows)都支持重定向,允许用文本替换键盘输入。例如,假设在Windows中有一个名为gofish.exe的可执行程序和一个名为finshtale 的文本文件,则可以在命令提示符下输入下面命令:gofish <finshtale这样,程序将从finshtale文件(而不是键盘)获取输入,< 符号是Unix和Windows命令符提示模式的重定向运算符。其次,很多操作系统都允许通过键盘模拟文件结尾条件。在Unix系统中可以通原创 2020-11-29 01:53:15 · 133 阅读 · 1 评论 -
C++预备知识
C++预备知识一、简介C++融合了3种不同的编程方式,C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。C++与C语言一样都是起源于贝尔实验室,于20世纪80年代被创造出来。二、头文件头文件类型约定示例说明C++旧式风格以.h结尾iostream.hC++程序可以使用C旧式风格以.h结尾math.hC、C++程序可以使用C++新风格没有扩展名iostreamC++程序可以1使用,使用namespa原创 2020-11-29 01:50:15 · 140 阅读 · 0 评论 -
树相关介绍
树二叉排序数 -> 红黑树 -> 多叉树 -> B树 -> B+树平衡二叉树概念平衡二叉树是基于二分法的策略提高数据查找速度的二叉树的数据结构。特点平衡二叉树是基于二分法思维把数据按照规则装成一个树形的结构,用这个树形结构的数据减少无关数据的检索,大大提高了数据检索的的速度。规则非叶子节点只能允许最多两个字节的存在每个非叶子节点数据的分布规则为左边的子节点小于当前节点的值,右边的子节点大于当前节点的值。层级结构因为平衡树的查询性能和树的层级(h高度)成反比,原创 2020-11-02 20:56:46 · 122 阅读 · 0 评论