- 博客(46)
- 收藏
- 关注
原创 Git 远程库操作
本文只是对git命令的总结,方便以后查阅详细操作过程请看廖雪峰git教程将本地库与远程库关联,并将本地库内容添加到远程库首先在本地创建SSH keyssh-keygen -t rsa -C “邮箱”把id_rsa.pub里的公钥加到github上然后将本地库和远程库关联git remote add origin SSH然后推送git push -u origin master...
2020-04-25 16:07:26 163
原创 Git 本地库操作总结
本文只是对git命令的总结,方便以后查阅详细操作过程请看廖雪峰git教程–创建版本库git init–将文件放到暂存区(stage)git add–提交到版本库git commit -m “…”–查看当前状态git status–查看当前工作区的修改与版本库有什么不同git diff *.txtgit diff HEAD - - *.txt–显示提交日志git lo...
2020-04-24 16:23:06 193
原创 C++随机数的产生
最近经常有用到随机数,比如做快排的时候,但每次都是直接rand(),没有真正搞懂过随机数啊,种子啊什么的,这回来完整的学习一些。rand():在0-RAND_MAX之间随机产生一个数。头文件为stdlib.hRAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相...
2020-04-10 16:11:33 420
原创 快排的非递归实现(腾讯面试题)
leader面问了一个快排的非递归实现,一下子蒙了。因为平常从来都是递归的快排,当时只想到递归变非递归肯定要用到栈,但怎么也想不出来,今天来补一下。先把递归的写一下吧int Partition(vector<int>& nums, int left, int right){ //随机化一下 int m = left + (rand() % (right - left...
2020-04-06 11:12:15 354
原创 C++ priority_queue自定义类型建堆
自定义类型需要重写仿函数,告诉队列应该怎么比较下面进行了一个测试struct Node{ int a; int b; Node(int x = 0, int y = 0) :a(x), b(y) {}};struct cmp{ bool operator()(Node n1, Node n2) { if (n1.a == n2.a) return n1.b > n...
2020-04-06 09:44:51 1010
原创 为什么TCP服务器的listenfd要设置为非阻塞
原因:https://blog.csdn.net/zhwenx3/article/details/88107428
2020-03-13 16:51:15 755
原创 Tiny web
今天把自己参考csapp写的web服务器调通了,学到了很多东西。记录下来。1.gdb调试工具首先编译链接的时候得加 -gg++ -g -o myweb myweb.cpp web.cpp然后 gdb -p myweb如果程序有输入参数 set args 输入参数break建立断点r–run执行 c–continue继续s–step单步执行 n–next 单步但跳过函数pr...
2020-03-12 21:10:50 504
原创 中序遍历,后序遍历非递归
比想象中的简单。。。#include<iostream>#include<stack>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};...
2020-02-25 22:01:32 86
原创 C++11新特性(日常记录,写的比较简略)
1.C++11新特性1.Lambda 表达式,用于创建匿名函数的。既可以减少函数数量,又会让代码变得清晰易读。[](实参)->return type {body}[] // 不捕获任何外部变量[=] // 以值的形式捕获所有外部变量[&] // 以引用形式捕获所有外部变量2.自动推导auto和decltype新的操作符 decltype 可以从一个表达式中“俘获”...
2020-02-24 22:38:55 125
原创 C++ Primer06类中有三剑客
总归是考完试了。终于可以继续C++ Primer之旅了。到上一篇文章为止,已经复习完了类的一些基本特性,从本章开始,属于类的一些进阶特性了。这回我们将会看到 拷贝构造函数,拷贝赋值运算符,析构函数。说实话,真的是看到第二遍才真正理解了一些东西。第一遍看的糊里糊涂的。。这回话好像有点多,赶快开始吧。前言在一个类中,除了前面介绍的构造函数外,其实还有 拷贝构造函数、拷贝赋值运算符、移动构造函数...
2020-02-19 13:45:56 317
原创 C++Primer15 IO库
第14讲对标准库做了一些简单的介绍,从这一讲开始依次对各个标准库进行详解。这一讲是IO库IO库为了支持不同种类的IO处理操作,C++定义了多种IO类型。iostream定义了用于读写流的基本类型。istream 从流读取数据ostream 向流写入数据fstream定义了读写命名文件的类型。ifstream 从文件读取数据ofstream 向文件写入数据sstream定义...
2020-02-19 13:40:12 139
原创 C++ Primer14 标准库
类的部分我们就暂时先到这里,因为文本查询程序以及Basket类都涉及到标准库,所以,从今天开始,我们先来把标准库复习一下。标准库类型 stringstring对象的初始化string s1;//1 默认初始化,s1为空串string s2(s1);//2string s2 = s1;//3string s3("value");//4string s3 = "value";//5 ...
2020-02-19 11:33:45 339
原创 C++ Primer12抽象基类
继续昨天的类型转换与继承我们可以将基类的指针和引用绑定到派生类对象上。当使用基类的引用或指针时,实际上我们并不清楚我使用的对象到底是基类对象还是派生类对象。静态类型和动态类型例如item.net_price(),它的静态类型是Quote&,动态类型则根据传入的实参来决定。如果传入的是Bulk_quote,则动态类型为Bulk_quote。如果表达式既不是引用也不是指针,则它的动态...
2020-02-19 11:33:06 173
原创 C++ Primer11类中的继承
继承通过继承联系在一起的类构成一种层次结构,根部的为基类,其他类为派生类。基类负责定义在层次关系中,所有类共同拥有的成员。派生类定义各自特有的成员。虚函数基类将类型相关的函数与派生类不做改变直接继承的函数区别对待。对于某些函数,基类希望派生类定义自己合适的版本,此时基类将这些函数声明为虚函数。 派生类必须在其内部对 所有重新定义的虚函数进行声明 。在C++11新标准中,我们可以使用over...
2020-02-19 11:32:33 255
原创 C++ Primer10移动构造函数
当一个对象被用作右值的时候,用的是对象的值(内容)。当对象被用作左值,用的是对象的身份(在内存中的位置)。所谓右值引用,就是必须绑定到右值的引用。右值引用:只能绑定到一个将要销毁的对象上。它也不过是某个对象的另一个名字而已。左值与右值明显的区别:左值有持久的状态,右值要么是字面常量,要么是在表达式求值过程中创建的临时对象。move函数告诉编译器:我们有一个左值,但我们希望像一个右值一样处理...
2020-02-19 11:32:09 194
原创 C++ Primer08邮件管理类
一般的做法是:两个类的头文档之中,选一个包含另一个类的头文档,但另一个头文档中只能采用class ;的申明形式,而在实现文档中(.cpp)中包含头文档...
2020-02-19 11:31:37 581
原创 C++ Primer09动态内存管理类
动态内存管理类上一节咱们写了邮件管理类。这一节要写一个动态内存管理类。前言如果一个类需要在运行时使用可变大小的内存空间,也就是这个类的数据成员,它不一定需要存储多少个。这样的话,我们一般使用标准库来存储数据。但有的时候,我们需要自己进行内存分配。还记得之前说的吗?只要需要自己进行内存分配。那必然,这个类会存在析构、拷贝构造、拷贝赋值运算符函数。跟前面的邮箱管理类一样,这一套函数是存在功能...
2020-02-19 11:31:18 213 1
原创 C++ Primer07拷贝控制与资源管理
一个丑陋的Employee类#pragma once#include<iostream>#include<string>using namespace std;class Employee{ friend ostream& print(const Employee& em, ostream& out);public: Employe...
2020-02-19 11:30:48 128
原创 C++ Primer05其他形式构造函数与静态类型
新一年的第一天,今年注定会是不平凡的一年。加油了!今天我们将会看到:构造函数初始化列表、委托构造函数、隐式类类型转换、以及类的静态成员。1.构造函数初始化列表我们在声明构造函数时,可以这样: Sales_data(const string& s, unsigned n, double p) { bookNo = s; units_sold = n; revenue =...
2020-02-19 11:28:48 128
原创 C++ Primer04类的作用域问题
这回来一些烧脑(ku zao)的在一个阳光明媚的下午,我带着愉快的心情,打开笔记本,但我完全没有想到,我接下来看到的是一些类的比较烧脑(ku zao)的特性。这回我们将会看到:类的声明、其他的友元方式、友元声明与作用域、类的作用域。今天的代码不多,这回不先贴代码了(因为没有完整的类),来,开始吧!1.类类型每一个类定义了唯一的类型。对于两个类来说,即使他们的成员完全一样,这两个类也是不同...
2020-02-19 11:27:34 125
原创 C++ Primer03类的其他特征
来继续探索一些类的其他特征这一章会出现,类型成员,内联函数 ,可变数据成员,重载,返回this的成员函数,基于const的重载。还是老样子,先贴代码Screen.h#pragma once#include<iostream>using namespace std;class Screen{public: typedef size_t pos; //类型成员 typ...
2020-02-19 11:27:05 164
原创 C++ Primer02构造函数与友元
构造函数与友元上一篇的类其实都不能算是个类,连构造函数都没有,连访问控制都没有,这类没法用啊(虽然编译器会自动生成默认的构造函数)。今天,我们就来加上它们。顺便再来个友元。还是,先直接贴代码。Sales_data.h#pragma once#include<iostream>using namespace std;class Sales_data{ friend is...
2020-02-19 11:26:09 203
原创 C++ Primer01从类开始
本系列文章主要对C++Primer进行一个复习前一段时间花了两个月时间把这本数啃了个差不多,一个月过去了,好像忘记了不少,尤其是关于类的部分(因为暂时也用不到)。但眼看着就要面临找实习找工作了,于是想再熟练一边,并通过博客记录,以便今后忘了的时候翻阅。又因为之前是按顺序看的,看到类那块儿已经精疲力尽了。。。。所以这次换个方式,倒着往前看,也就是先从类看起。话不多说,开始吧。第七章:类这一章...
2020-02-19 10:47:04 201 1
原创 LeetCode:20.有效的括号(C++)
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。bool isValid(string s)示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”...
2020-02-12 11:51:05 167
原创 LeetCode:19.删除列表的倒数第N个节点(C++)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。struct ListNode { int val; ListNode* next; ListNode(int x) : val(x), next(NULL) {} };ListNode* removeNthFromEnd(ListNode* head, int n){}示例:给定一个链表: 1->2-&g...
2020-02-12 11:43:32 157
原创 LeetCode:17.电话号码的字母组合(C++)
注:此文章非商业用途,仅用于自身学习记录。题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。vector<string> letterCombinations(string digits){}示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, ...
2020-02-12 11:34:12 162
原创 LeetCode:15.三数之和 C++
注:此文章非商业用途,仅用于自身学习记录。题目: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。实例: 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1...
2020-02-11 21:53:00 198
原创 剑指offer:机器人的运动范围
题目:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?int movingCount(int thr...
2020-02-10 11:06:42 104
原创 剑指offer:矩阵中的路径
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了...
2020-02-09 21:11:40 83
原创 剑指offer:滑动窗口的最大值
**题目:**给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2...
2020-02-06 18:02:02 87
原创 剑指offer:表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。这个题挺简单的。就按这个规则写就行了。#include<iostream>#include<string>usi...
2020-01-13 10:25:58 75
原创 剑指offer:正则表达式匹配
题目描述请实现一个函数用来匹配包括 . 和 ※ 的正则表达式。模式中的字符’.'表示任意一个字符,而※表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配。用递归的思路还是挺好理解的:分为两种情况:1.该字符后面不是※。那对应位置必须得匹配。否则返回...
2020-01-13 10:23:23 125
原创 剑指offer:构建乘积数组
题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。vector<int> multiply(const vector<int>& A){}思路:如图,先挨个计算下三角,然后再倒着计算上三角。#include<io...
2020-01-13 10:12:00 92
原创 剑指offer:数组中重复的数字
题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 // Parameters: // numbers: an array of int...
2020-01-13 10:01:36 70
原创 剑指offer:平衡二叉树
题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。struct TreeNode { int val; struct TreeNode* left; struct TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }}bool IsBalanced_Solution(TreeNode*...
2019-12-03 22:13:42 117
原创 剑指offer:数组中的逆序对
题目描述:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007int InversePairs(vector<int> data) {}这个题用暴力的方法时间复杂度太高,采用分治的方法来解。先求出左半部分逆序对的数量c1再求出右...
2019-12-03 21:41:03 63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人