ICode9

精准搜索请尝试: 精确搜索
  • 第04章_复合类型2022-07-10 11:00:22

    <c++ primer plus>第六版 目录4 复合类型4.1 数组4.2 字符串4.3 string类4.4 结构体4.6 枚举4.7 指针和自由存储空间4.7.4 使用new分配内存4.7.5 使用delete释放内存4.7.6 使用new来创建动态数组4.8.4 使用new创建动态结构4.8.5 自动存储, 静态存储, 动态存储4.9 类型组合4.10 数

  • C++中类的成员函数是如何调用this指针2022-07-10 01:31:31

    C++中类的成员函数是如何调用this指针 起因 最近工作中遇到一个有趣的闪退问题,原因很简单,就是因为调用了一个空对象的成员函数。但是在dump的堆栈信息里发现程序终止的地方并不是函数刚开始,而是在函数内部执行很多语句后才终止,类似于: class Example { // 不重要的乱七八糟 void

  • C++ 2022/07/092022-07-09 22:01:12

    二维数组(a[O][P])与指针: 对二维数组的元素地址进行运算,实际上是对该元素所在列进行运算;(1) 对二维数组名进行运算,是对其行进行运算;(2) 对a[i]进行运算是对列进行运算;(3) *(*(a+n)+m)=a[n][m] a+n:代表第n+1行的地址; *(a+n):代表第n+1行,因其是含P个元素的数组名,即指向该数组第一个元素a[n][0]的指

  • swap()交换函数【引用】2022-07-09 20:33:59

    C语言的变量,就是将系统分配的地址取个别名,所以变量名就是地址。 引用是一个变量的另一个名字,又称别名。定义方式:int a=10;int &b=a;在这里,意思就是给a变量起了一个新名字b,因此b不可再次被重新定义。引用必须初始化,无空引用,并且引用不分等级。 函数的定义类型 函数名(形参) { } 一、理

  • 双指针-2250. 统计包含每个点的矩形数目2022-07-09 19:36:08

    问题描述 给你一个二维整数数组 rectangles ,其中 rectangles[i] = [li, hi] 表示第 i 个矩形长为 li 高为 hi 。给你一个二维整数数组 points ,其中 points[j] = [xj, yj] 是坐标为 (xj, yj) 的一个点。 第 i 个矩形的 左下角 在 (0, 0) 处,右上角 在 (li, h

  • 智能指针思想实践(std::unique_ptr, std::shared_ptr)2022-07-09 19:02:19

    1 smart pointer 思想 ​ 个人认为smart pointer实际上就是一个对原始指针类型的一个封装类,并对外提供了-> 和 * 两种操作,使得其能够表现出原始指针的操作行为。 ​ 要理解smart pointer思想首先要了解一个概念RAII(Resource Acquisition Is Initialization), 直译为资源获取即

  • CF1701 Educational Codeforces Round 131总结2022-07-09 18:01:27

    比赛地址 比赛情况 排名:221 / 23733 AC:4 / 6 题目总结 A 看一下有几个1,0个就0,4个就2,否则1 B \(d=2\) 显然最优。 于是从 1 到 \(n\) 判断,如果此数还未输出就输出它和它的2倍和它的2倍的2倍,直到大于 \(n\),标记为出现过,然后遍历下一个数。 C 双指针 首先把每个人擅长的工作都交给它

  • 野(wild)指针与悬空(dangling)指针有什么区别?如何避免?2022-07-09 11:03:30

    野指针(wild pointer):就是没有被初始化过的指针。⽤ 悬空指针:是指针最初指向的内存已经被释放了的⼀种指针。 编译, 会出现 used uninitialized 警告。 ⽆论是野指针还是悬空指针,都是指向⽆效内存区域(这⾥的⽆效指的是"不安全不可控")的指针。 访问"不安全可控"(invalid)的内存

  • 常用的typedef 定义2022-07-09 00:33:42

    今天开始学习VC++基础,系统编程栏目下都是WinAPI和MFC的内容,此为浏览博客园时学习的一篇文章,觉得很实用,拿来做笔记。 出处见最底部。     三行代码:      typedef char CHAR;     typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;     typedef CONST CHAR

  • [CF1699E] Three Days Grace 题解2022-07-08 11:35:35

    CF link 你谷 link 一道非常巧妙的 dp 题,但是顺着思路水到渠成并不是完全无迹可寻。 首先观察到题面中答案的形式是最值相减,提醒我们使用双指针的思想,即枚举最小值的过程中动态单调维护最大值,同时注意到本题中的操作类型是将一个数拆成两个数相乘的形式,所以可以想到是从大到小枚举

  • 为什么delete p;后最好加上p = NULL; ? (浅谈内存泄露和内存过度释放)2022-07-08 09:02:06

       这么做的原因是防止内存泄漏;在释放内存后,要将相关指针置为NULL. 这样可以防止后续对该指针进行操作时出错;  

  • leetcode 11. 盛最多水的容器2022-07-06 18:02:35

    题目描述 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。 说明:你不能倾斜容器。 链接:https://leetcode.cn/proble

  • 指向数组的指针2022-07-06 17:46:17

    数组(Array)是一系列具有相同类型的数据的集合,每一份数据叫做一个数组元素(Element)。 数组中的所有元素在内存中是连续排列的,整个数组占用的是一块内存。 以int arr[] = { 99, 15, 100, 888, 252 };为例,该数组在内存中的分布如下图所示: 数组名可以认为是一个指针,它指向数组的第 0 个

  • C++ 练气期之指针所指何处2022-07-05 23:35:15

    1. 指针 指针是一种C++数据类型,用来描述内存地址。 什么是内存地址? 内存中的每一个存储单元格都有自己的地址,地址是使用二进制进行编码。地址从形态上看是一个整型数据类型。但是,它的数据含义并不表示数字,而是一个位置标志,类似于门牌号。 指针类型数据的算术运算: 在地址上加上或

  • 贪心题目选做2022-07-05 15:33:34

    NC18386 字符串 这道题几乎就是双指针的模板题了。 每次移动一下左端点,然后移动右端点知道满足条件 #include<bits/stdc++.h> using namespace std; int v[300] = {}; int32_t main() { string s; cin >> s; int l = 0 , r = -1 , len = s.size() , ans = 1e9 , k

  • 字符串函数2022-07-03 17:01:18

      C提供了许多处理字符串的函数,存放在string.h头文件中。常用的有:strlen()、strcat()、strcmp()、strcpy()和strncpy()。另外还有sprintf(),存放在stdio.h头文件中   1、strlen()   用于计算字符串长度。下面的函数可以修改字符串的长度,其中用到了strlen():      这里经过

  • Go的指针2022-07-02 21:00:22

    Go中的指针 要搞明白Go语言中的指针需要先知道三个概念 指针地址 指针类型 指针取值 Go语言中的指针操作非常简单,我们只需要记住两个符号:&:取地址,*:根据地址取值 关于指针 我们知道变量是用来存储数据的,变量的本质是给存储数据的内存地址起了一个好记的别名。比如我们定义了一个变

  • 977.有序数组的平方2022-07-02 15:03:28

    977.有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 示例 1: 输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]示例 2: 输入:nums = [-7,-3,2,3

  • ctf pwn题patch方法(UAF)2022-07-02 12:02:17

    ctf pwn题patch方法(UAF) 以ciscn2022华东南赛区一题为例,附件在文章末尾 漏洞在sub_1614函数,free之后指针没有置零 patch步骤如下: 修改.eh_frame section所在segment权限,使patch代码可以执行 View->Open subviews->Segments查看.eh_frame section的地址,可以看到是0x1e00-0x2208

  • LeetCode287 寻找重复数(快慢指针寻找环入口)2022-07-01 23:01:55

    LeetCode287 寻找重复数 快慢指针寻找环入口 关于判定有环之后如果寻找环入口可参考 参考 class Solution: def findDuplicate(self, nums: List[int]) -> int: slow, fast = nums[0], nums[nums[0]] while slow != fast: slow = nums[

  • LeetCode快慢指针2022-07-01 18:34:40

    Add Two Numbers LeetCode/力扣 模拟两个数相加 用一个数表示进位 ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode *t1 = l1, *t2 = l2; int n1 = 0, n2 = 0, c = 0; ListNode *prev = nullptr; while(t1 && t2) { int sum = t1->val

  • python、js快慢指针解决环形链表问题2022-07-01 00:34:15

    题目 leetcode 241题,环形链表。https://leetcode.cn/problems/linked-list-cycle/ 思路 1、哈希表 ​ 建立一个哈希表,每次访问的节点都存储起来。如果某个节点在哈希表中已存在,说明有环。时间复杂度O(n),空间复杂度o(n) 2、双指针之快慢指针 快指针每次移动2个节点,慢指针每次移动1

  • C++指针相关2022-06-30 11:02:04

    https://www.runoob.com/cplusplus/cpp-pointers.html 星号 * 是:1.用来声明指针       2.来返回位于操作数所指定地址的变量的值   指针是一个变量,其值为另一个变量的地址 eg. int *ip; //ip为一个指针 使用指针时会频繁进行以下几个操作:定义一个指针变量、把变量地

  • 常见问题-数组索引越界异常和空指针异常2022-06-29 20:35:54

    数组越界异常 观察一下代码,运行后会出现什么结果 public static void main(String[] args) { int[] arr = {1,2,3}; System.out.println(arr[3]); } 创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此我们不能访问数组中不存在的索引,程序运 行后,将会抛出 ArrayIndexOutOfBou

  • 指针2022-06-29 14:37:08

                 

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有