C++
Royel transformed
进击的程序猿
展开
-
C++ vector讲解
C++中的数组是与vector类似的一种数据结构,两者其实都是存储一种数据类型元素的容器。1.数组与vector的相同点1)都采用顺序存储的方式,可以存储任何类型的元素。2)在访问元素方面,二者都是既可以通过下标访问,又可以通过迭代器来访问,对于迭代器访问,C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器定义了一种迭代器类型,而只用少数容器支持下标操作访问容器元素。...原创 2018-11-20 14:06:51 · 215 阅读 · 0 评论 -
C for循环语句执行顺序
发现居然搞不清楚最基础的东西了,反思。。。for(表达式1;表达式2;表达式3){循环体}知道其的语句执行顺序对我们来说可以避免很多失误我们可以利用下面这个小程序轻易测出其内在的语句循环顺序:#include<stdio.h>void main(){int i;for (printf("#1\n"),i=1; printf("#2\...转载 2018-08-17 23:06:59 · 562 阅读 · 0 评论 -
c语言中形参与实参的关系
一、形参出现在函数定义中,在整个函数体内都可以使用,形参变量只有在被调用时才分配内存单元,在调用结束时即刻释放所分配的内存单元,因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。 离开该函数则不能使用,实参出现在主调函数中,进入被调函数后,实参变量也不能使用。二、形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主...原创 2018-04-11 16:10:48 · 16888 阅读 · 3 评论 -
C++ 关于指针
补数据结构看书的时候,发现好久不用C,关于指针有些遗忘了,整理一下。以下内容是一段代码,不要单句去看:int b=2;//假设b存放的地址为FFFFFFFFHint *a; //声明一个指针变量,该指针变量指向一个存有int类型数的内存单元。该变量有自己的地址,假设为1456231FH;a=&b;//使指针a指向变量b;所谓a指向变量b,就是指针a的内存单元中存放的内容...原创 2018-04-11 16:27:51 · 186 阅读 · 0 评论 -
每日一道算法题--leetcode 19--删除链表的倒数第N个结点--C++
题目:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: List...原创 2018-11-14 15:35:52 · 103 阅读 · 0 评论 -
每日一道算法题--leetcode 3--最长子串--C++
给定一个字符串,找出不含有重复字符的最长子串的长度。class Solution {public: int lengthOfLongestSubstring(string s) { int slength=s.length(); int maxlength=0; int currentlength=1; int i=0...原创 2018-11-01 16:40:40 · 153 阅读 · 0 评论 -
每日一道算法题--leetcode 2--两数相加返回新链表--C++
题目:给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。【自己写的版本】:比较垃圾。。。所以后面看了官方的又写了改进版/** * Definition for singly-linked list. * struct ListNode { * i...原创 2018-10-30 17:57:51 · 178 阅读 · 0 评论 -
每日一道算法题--leetcode 78--子集--C++
给定一个不包含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:讲解:1.首先补充一下有关vector的知识,见我的另一篇https://mp.csdn.net/postedit/842973122.代码的整体思路就是:逐个加入nums中的元素,每加入一个元素,就对output现有的所有数组,加入该元素,放入output末尾...原创 2018-11-20 14:16:13 · 182 阅读 · 0 评论 -
每日一道算法题--leetcode 206--反转链表--C++
【题目描述】【代码思路】实现链表原地反转,p指针指向当前正在操作的结点,pre指针指向未反转以前p的前驱结点,假设已经完成了头结点指向NULL的操作,此时pre指针指向1结点,p指针指向2结点,如果此时我们让p->next=pre,那么我们就无法再找到3结点了,所以此时需要新增一个指针用来指向3结点,所以需要先用q=p->next,将3结点的地址保存起来...原创 2019-03-18 17:55:39 · 133 阅读 · 0 评论 -
【深度优先特辑】每日一道算法题--leetcode 690--员工的重要性--C++
题目:分析:各个元素之间存在着1父对多子的关系,这显然是一个树的结构,自然想到采用深度优先或者广度优先的方式来做,笔者采用深度优先的方式,1)首先要根据传入的参数id找到该元素在vector中的位置,就是找到指向该元素的指针。Employee* currentemployee=new Employee();if(employees.size()<=0){ ...原创 2018-11-27 14:15:19 · 246 阅读 · 0 评论 -
每日一道算法题--leetcode 695--岛屿的最大面积--C++
【题目描述】给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)【代码思路】这道题明显是用图中的深度优先搜索来解决,搜索这个二维数组用递归的方式如何递归呢?在dfs函数中,首先需要找到...原创 2019-03-19 10:51:09 · 642 阅读 · 1 评论