指针

C++ 高效使用智能指针的8个建议

C++ 高效使用智能指针的8个建议 前言:智能指针是C++11提供的新特性,它基于RAII实现,可以自动管理内存资源,避免内存泄漏的发生,但是智能指针也并不是万能的,如果不正确使用智能指针,也会导致内存泄漏的发生,因此,我们需要了解如何高效使用智能指针避免一些可能的陷阱。本文总结了8个关于智能指针的 ......
指针 建议 智能

C++: 智能指针的自定义删除器 `Custom Deleter` 有什么用?

C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法。智能指针模板参数的第二个类型是删除器,一般是一个函数指针类型或者是一个函数对象类型。通常情况下,删除器的类型是std::default_delete<T>, ......
指针 Deleter 智能 Custom

算法学习Day3虚拟头指针,设计链表,反转链表

Day3虚拟头指针,设计链表,反转链表 By HQWQF 2023/12/15 笔记 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 解法:虚拟头指针 看起来非常简单,但是由于如果直接 ......
指针 算法 Day3 Day

双指针算法概念

"双指针"是一种在数组或链表中使用两个指针来进行操作的技术。这两个指针通常被称为“快”指针和“慢”指针,或者“左”指针和“右”指针,根据其在数据结构中的移动速度或位置来命名。双指针算法在处理数组或链表的问题中非常有效,可以帮助我们以更优的时间复杂度解决问题。常见的应用包括两数之和、判断链表是否存在环 ......
指针 算法 概念

C++(this指针)

在 C++ 中,this 是一个关键字,表示指向当前对象的指针。它是每个非静态成员函数的一个隐式参数,被用于指向调用该函数的对象。通过 this 指针,成员函数可以访问调用它的对象的成员变量和成员函数。 以下是一个简单的示例,演示了 this 指针的使用: #include <iostream> c ......
指针 this

成员函数指针做回调参数总结 踩坑

成员函数指针做回调参数总结 踩坑 一、程序升级后,在linux上编译提示错误: warning: converting from ‘int (MyClass::)()’ to ‘void ()()’ [-Wpmf-conversions] void(myStoredFunction)(void) = ......
指针 函数 成员 参数

【删除链表的倒数第N个节点】双指针

leetcode 19. 删除链表的倒数第 N 个结点 题解1:通过链表长度获取[倒数第n个节点]位置 计算链表长度 找到[倒数第N个节点]的前一个节点 删除[倒数第N个节点] 注意特殊情况:删除的是第一个节点时,直接返回第二个节点即可 点击查看代码 /** * Definition for sin ......
节点 指针

【回文链表】快慢指针+反转链表

leetcode 234. 回文链表 题意:判断一个链表是不是回文(中心对称)的 【反转链表】题解1: 得到原链表的反转链表,然后对比原链表与反转链表的内容是否一致即可。 反转链表版本代码 /** * Definition for singly-linked list. * public class ......
回文 快慢 指针

C++基础 -6- 二维数组,数组指针

———————二维数组,数组指针——————— 🎈二维数组在内存中的存放方式和一维数组完全相同 🎈下表把二维数组抽象成了行列形式方便理解 🎈a[0]指向第一行首元素地址 🎈a指向第一行的首地址 🎈所以a地址和a[0]地址相同,因为起点相同 🎈a[0]+1往右偏移 🎈a+1往下方向偏移 ......
数组 指针 基础

C/C++结构体指针强转为整型/长整型

一、关键词 结构体指针强转为整型类,使用时在把整型强转为结构体指针 二、知识点 注意:1、这种的转化并不是用指针指向指针,而是目标指针的地址被作为一个值被保存在整型中,而整型中的值就是目标指针的地址。 2、需要实在64位机器还是32为机器,在32位用int就可以,而64位需要long进行转化以及存储 ......
指针 结构

【交叉链表】Java哈希表——HashSet类/双指针

leetcode 160. 相交链表 题意:给定两个链表A、B的表头节点,找到链表交叉节点(地址值相同)。链表A长度为m,链表B长度为n,范围在[1, 3e4] 题解1: 根据哈希表去重的原理,使用哈希表集合HashSet来维护链表节点,默认比较节点地址值。将链表A中的节点全部add进HashSet ......
指针 HashSet Java

关于雷电9模拟器开启指针位置不显示坐标问题的解决方案

点击设置,进入关于手机页面,点击手机版本号,点击多次进入开发者模式 进入输入模块,开启指针位置,如坐标未显示,则进入模拟器的安装目录,找到vms文件夹,进入并新建一个名称为debug的txt文本进行保存 重新启动模拟器即可 ......
模拟器 雷电 坐标 指针 解决方案

弱引用智能指针

文章参考: 爱编程的大丙 (subingwen.cn) 1. 概述 弱引用智能指针std::weak_ptr是共享智能指针std::shared_ptr的助手,它不管理shared_ptr内部的原始指针,也没有重载操作符*、->,因此不共享指针,不能操作资源,所以它的构造和析构都不会影响引用计数。其 ......
指针 智能

共享智能指针

文章参考: 爱编程的大丙 (subingwen.cn) 所谓智能指针,其实就是C++11封装的类,里面存有一个正常指针,智能指针会通过这个正常指针,来监视指针指向的内存,当没有智能指针指向该内存时,该内存就被释放。其核心在于引用计数,每一个智能指针指向内存A,智能指针内部的引用计数就加一。每析构一次 ......
指针 智能

独占智能指针

文章参考: 爱编程的大丙 (subingwen.cn) 1. 初始化: 特点: 相较于共享智能指针,独占智能指针(unique_ptr)的关键在于:同一时刻,只能有一个智能指针指向同一块内存。因此独占智能指针不允许使用拷贝构造函数和拷贝赋值函数。 初始化: 通过构造函数初始化: unique_ptr ......
指针 智能

实验6 C语言结构体,枚举应用编程(附实验5 C语言指针应用编程)

实验6 一,实验目的 二,实验准备 三,实验内容 1,实验任务1 task1.c 1 #include <stdio.h> 2 #include <string.h> 3 #define N 3 // 运行程序输入测试时,可以把这个数组改小一些输入测试 4 5 typedef struct stud ......
语言 指针 结构

【C系列5.13】指针专题之矩阵转置(hznuoj刷题)

Description Alex最近又喜欢上了矩阵转置游戏,这个游戏非常简单,将一个3*3的矩阵转置即可。现在,请你用指针写一个程序来实现矩阵转置功能。 Input 输入包含多组测试数据,对于每组测试数据,包含一个3*3的矩阵,每个元素的值都在0到9之间。 Output 一个转置后的3*3的矩阵。每 ......
矩阵 指针 专题 hznuoj 5.13

【C系列5.4】指针专题之分割字符串(strtok与gets的应用)(hznuoj)

Description Alex的好朋友都去生猴子了,所以她只好百无聊赖地继续玩字符串游戏。输入一个长度不超过10000的字符串,字符串中只含字母和空格,空格用于分隔单词,请将字符串中用空格分隔的单词输出来。 Input 输入含多组测试数据,每组占一行,是一个长度不超过10000的字符串,只含字母和 ......
字符串 指针 字符 专题 strtok

初学指针,刷题(hznu【C系列5.6】指针专题之翻译)

题目如下 Description (本人学艺不精,写了很久才写出了一个臃肿的代码,malloc也不咋会用,只能向ai请教了T_T) Alex在朋友们都去生猴子了的日子里,日复一日、年复一年地敲代码,终于,在经年累月的摧残下,她的手指变得不那么利索了,比如“how are you”她会哆嗦着打成“hh ......
指针 专题 hznu 5.6

c语言指针

【C语言】中的指针 说明:只是学习中的一些感悟,如有错误,欢迎指正 一、指向指针的指针 __________________________________________________________________________________________________________ ......
指针 语言

快慢指针解决中间值问题

快指针到终点时,慢指针为链表一半 ......
快慢 指针 问题

C++(智能指针)

在 C++ 中,智能指针是一种用于管理动态分配内存的智能化工具。它们提供了对动态分配资源的自动管理,以减少内存泄漏和资源泄漏的风险。C++ 标准库提供了两种主要的智能指针类型:std::shared_ptr 和 std::unique_ptr。以下是这两种智能指针的基本解释: 1. std::sha ......
指针 智能

fastDFS文件存储获取tracker连接报空指针异常

异常错误: java.lang.NullPointerException: null at org.csource.fastdfs.TrackerClient.getConnection(TrackerClient.java:57) ~[fastdfs-client-java-1.27.0.0.ja ......
指针 fastDFS tracker 文件

字符指针及其函数的使用

字符指针 一、字符指针的有关内容 首先需要明确的是,字符串实际就是字符数组。比如说: char p="hello world"; 实际上应该是: p={'h','e','l','l','o',' ','w','o','r','l','d','\0'}; 因此在定义字符串时,我们需将其看作是数组,也就 ......
指针 函数 字符

Leetcode刷题day6-哈希表.双指针.三~四数求和.

454.四数相加Ⅱ 454. 四数相加 II - 力扣(LeetCode) 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k, l < n nums1[i] + nums2[ ......
指针 Leetcode day6 day

指针(2)指针基本了解及其应用

<1>指针 (1)指针基本概念 1)引入:提出问题: 如果能够将取得的变量的地址传递给一个函数,能否通过这个地址在那个函数内访问这个变量 2)回顾scanf函数功能 格式:scanf("%d",&i) 深入探讨:scanf()的原型应该是怎样的?我们需要一个参数能保存别的变量的地址,如何表达能够保存 ......
指针

面试高频:双指针---6题14图一次搞懂

使用双指针是降低算法复杂度的一个有效途径,有些问题的暴力解法时间复杂度是O(n^2),但使用双指针可以大幅度降低算法复杂度。如果面试者能将求解过程从暴力法优化到双指针,说明面试者的基础知识、代码能力、逻辑思维都是十分扎实的。 同贪心算法一样,双指针的难点在于自己想不出、别人的理解不了、正确性难以证明 ......
指针

C++_类实例—指针-内存

智能指针 # g++ t.cpp -std=c++11 C++11中引入了智能指针的概念,方便管理堆内存 智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装, 这使得智能指针实质是一个对象,行为表现的却像一个指针 包含在头文件<memory>中,shared_ptr、un ......
指针 实例 内存

主动控制文件内指针移动

主动控制文件内指针移动 文件内指针的移动时以Bytes为单位的,但是在t模式下时read(n),n以字符美单位的。 #文件内指针的移动时以Bytes为单位的,但是在t模式下时read(n),n以字符美单位的 with open('02.txt','rt',encoding='utf-8')as f: ......
指针 文件

不含指针的结构体赋值实现,直接内存拷贝

#include <stdio.h> #include <stdlib.h> struct A { int c; char b[20]; char strs[10][10]; int k; }; int main() { // A a = {...}; // 帮我初始化 struct A a = { ......
指针 拷贝 内存 结构