
学习整理总结
wiley_Z
这个作者很懒,什么都没留下…
展开
-
为什么禁用拷贝(复制)构造函数
关于C++的拷贝构造函数,很多的建议是直接禁用。为什么大家会这么建议呢?没有拷贝构 造函数会有什么限制呢?如何禁用拷贝构造呢?这篇文章对这些问题做一个简单的总结。这里讨论的问题以拷贝构造函数为例子,但是通常赋值操作符是通过拷贝构造函数来实现 的( copy-and-swap 技术,详见《Exceptional C++》一书),所以这里讨论也适用于赋 值操作符,通常来说禁用拷贝构造函数的同时也会禁用赋值操作符。为什么禁用拷贝构造函数关于拷贝构造函数的禁用原因,我目前了解的主要是两个原因。第一是浅拷贝问题转载 2020-05-10 09:36:34 · 2169 阅读 · 0 评论 -
【leetcode】数组中的逆序对-归并算法总结
数组中的逆序对记录下这个解题的思路以及归并排序的意义思路一:暴力,双重for循环int reversePairs(vector<int>& nums) { int count = 0; int len = nums.size(); for (int i = 0; i < len - 1; ++i) { for (int j =...原创 2020-04-24 11:41:54 · 375 阅读 · 0 评论 -
C++ 为什么拷贝构造函数形参使用引用&类型
代码class Test{ int _Test;public: Test(int x) :_Test(x)//带参构造函数 { cout << "带参数的构造函数"<<endl; } Test(const Test&te)//拷贝构造函数 { _Test = te._Test; cout << "拷贝构造函数" <&l...原创 2020-04-17 17:49:45 · 1085 阅读 · 0 评论 -
Leetcode 542. 01矩阵
分析一个只有0和1的矩阵,让我们求每一个1到离其最近的0的距离,其实也就是求一个距离场,而求距离场那么BFS将是不二之选。与题目1162.地图分析类似,都是多源BFS。树的BFS是单源的,图的BFS是多源的。能从一个点出发求最短距离就是BFS,借用大佬的图片BFS解题模板BFS使用队列,把每个还没有搜索到的点依次放入队列,然后再弹出队列的头部元素当作当前遍历点:如果不知道确定当前遍历...原创 2020-04-15 16:18:20 · 233 阅读 · 0 评论 -
leetcode 724. 寻找数组的中心索引
给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3解释:索引3 (nums[3] =...原创 2019-12-19 22:10:04 · 167 阅读 · 0 评论 -
leetcode 717. 1比特与2比特字符
有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例 1:输入:bits = [1, 0, 0]输出: True解释:唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例 2:输入:bits = [1, ...原创 2019-12-19 21:46:24 · 242 阅读 · 0 评论 -
leetcode 697.数组的度
[LeetCode] Degree of an Array 数组的度Given a non-empty array of non-negative integers nums, the degree of this array is defined as the maximum frequency of any one of its elements.Your task is to find ...原创 2019-12-19 21:19:25 · 194 阅读 · 0 评论 -
类成员函数跟普通函数
在默认情况下,C++类成员函数使用的函数调用约定是__thiscall,而普通函数使用的是__cdecl。__thiscall方式被使用时,调用者(caller)把this指针传递给ECX寄存器(当CPU是x86构架), 然后从右向左把参数压入堆栈,函数结束时,由函数本身(被调用者,callee)清理堆栈;__cdecl方式,调用者从右向左把参数压入堆栈,函数结束时,由调用者清理堆栈。...原创 2018-04-12 09:35:25 · 1064 阅读 · 0 评论 -
【Leetcode】如何刷leetcode
记录自己刷题的经历过程-按照Tag刷 链表,二叉树,回溯,图,贪心,动规,哈希表,哈希相对简单很多,建议从哈希还是刷 -难度等级从easy到hard,每道题先自己思考,实在不会的参考了一个开源的解答或者参考Discuss或者博客。 -Discuss里一般都会有高质量的解答。关键是每道题都要弄明白。 -这是一个自然的过程,做的多了就有“手感”了。 -总结一下,按tag由易到难,每道题弄清...原创 2018-04-07 21:42:53 · 1801 阅读 · 0 评论 -
C/C++中const关键字详解
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:常变量: const 类型说明符 变量名常引用: const 类型说明符 &引用名常对象: 类名 const 对象名常成员函数: 类名::fun(形参) cons转载 2018-01-30 20:48:15 · 251 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成员变量和成员函转载 2018-01-30 20:39:21 · 280 阅读 · 0 评论 -
c++中静态函数与动态函数的区别
在C语言中,由于没有类的概念,所以没有静态成员一说,在c中static的作用主要有2个:一是隐藏功能,对于static修饰的函数和全局变量而言 二是保持持久性功能,对于static修饰的局部变量而言。 并且,因为存放在静态区,全局和局部的static修饰的变量,都默认初始化为0。C语言中使用静态函数的好处: 静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例转载 2018-01-30 20:30:03 · 2996 阅读 · 0 评论 -
vector 扩容为什么要以1.5倍或者2倍扩容
转载:http://blog.youkuaiyun.com/denghe优快云/article/details/78985684 我们知道,vector 在需要的时候会扩容,在 VS 下是 1.5倍,在 GCC 下是 2 倍。那么会产生两个问题:(1)为什么是成倍增长,而不是每次增长一个固定大小的容量呢?(2)为什么是以 2 倍或者 1.5 倍增长,而不是以 3 倍或者 4 倍等增长呢?1、第转载 2018-01-30 20:22:58 · 6973 阅读 · 0 评论 -
C++开发Office插件:实现Word插件
http://blog.youkuaiyun.com/u011304970/article/details/72863693#reply转载 2017-12-07 15:40:07 · 3921 阅读 · 0 评论 -
剑指offer-004
重建二叉树 题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val;原创 2016-06-15 14:41:29 · 326 阅读 · 0 评论 -
《招聘一个靠谱的iOS》面试题参考答案(上)(1-6)
借鉴很多前辈的基础上整理,谢谢 原文地址:[面试题] (https://github.com/ChenYilong/iOSInterviewQuestions/blob/master/01%E3%80%8A%E6%8B%9B%E8%81%98%E4%B8%80%E4%B8%AA%E9%9D%A0%E8%B0%B1%E7%9A%84iOS%E3%80%8B%E9%9D%A2%E8%AF%95%E9原创 2016-06-14 18:27:47 · 794 阅读 · 0 评论