ICode9

精准搜索请尝试: 精确搜索
  • 01 | C++ 资源管理:堆、栈、RAII2022-05-14 16:01:34

    一、基本概念 堆(heap),在内存管理的语境下,指的是动态分配内存的区域,与数据结构里的堆不是一个概念。这里的内存,被分配之后需要手工释放,否则,就会造成内存泄漏。 C++ 标准里使用 new 和 delete 分配和释放内存的区域叫自由存储区(free store),这是堆的一个子集: new 和 delete 操作

  • C/C++使用ofstream遍历目录并将目录中的文件路径写入文件中2022-05-07 10:01:44

    一、概述   案例:实现一个小功能,遍历文件目录并将目录下的文件路径写入一个文件中。做这个小功能是为了OpenCV的人脸识别准备数据。(文件路径后面跟上文件所对应的标签)   需要导入的头文件: #include <fstream> #include <string> #include <sys/types.h> #include <sys/stat.h>

  • container_of() 宏的源码分析2022-05-01 14:34:37

    简介 container_of(ptr, type, member)是内核中的经典函数之一。该函数的作用是:根据结构体中一个成员的地址,找到结构体的地址。这个函数是内核实现面向对象的基础设施,且最近在学习中经常见到这个函数,于是笔者在内核中查看了该函数的实现,故在此记录。本文原本是为了展示container_o

  • C语言指针2022-04-23 00:00:58

    #include<stdio.h> //链表结点的数据结构 struct ListNode{ int val;//数据域 struct ListNode *next;//连接下一个节点的指针 }; int main(){ // &取地址运算符 *间接运算符 int a=5; int v=*(&a); printf("a的地址=%p\n",&a); printf("a的值=%d

  • 新手入门C语言第十三章:C指针2022-04-18 14:01:41

    C 指针 学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问

  • C语言库函数strchr2022-04-17 15:32:01

    原型 #include<string.h> char *strchr(char *str, int c); 功能 确定c(转换为char) 在str中第一次出现的位置,终止的空字符被认为是 字符串的一部分。因此,也可以定位它以检索指向字符串末尾的指针。 参数 str:要查找的字符串 c:要定位的字符,内部转为char 返回值 指向str中第一

  • 简单的自制类(包含迭代器的使用)2022-04-16 13:32:33

    #include<bits/stdc++.h> using namespace std; struct Array_iterator{ int *ptr; void operator++(){ ptr++; } int operator*(){ return *ptr; } bool operator!=(Array_iterator x){ if(ptr==x.ptr)return false; else return true; } }; struct Arr

  • 二叉树基础模板2022-04-14 02:01:14

    #include <bits/stdc++.h> using namespace std; template<class T> struct Node{ T data; Node<T> *Left, *Right; Node(const T &val,Node<T> *Lptr = nullptr, Node<T> *Rptr = nullptr):data(val),Left(Lptr),Right(Rpt

  • 线程安全的对象生命周期管理2022-04-11 19:04:30

    线程安全的 class 应当满足的条件 多个线程同时访问时,其表现出正确的行为 无论操作系统如何调度这些线程,无论这些线程的执行顺序如何交织 调用端代码无须额外的同步或其他协调动作 对象创建的线程安全 对象创建要做到线程安全,唯一的要求就是在构造期间不要泄露 this 指针: 不要

  • rtos 3 - 实现一个可以运行多任务的简易rtos2022-04-09 20:32:49

      1.创建任务   创建任务的主要工作是对任务的stack进行初始化,也就是伪造一个现场。 /********************************************************************************** 创建任务 ******************************************************************************

  • RAII 与 智能指针2022-03-21 12:34:38

    小彭老师的课程 C++11 的 for each只要实现了begin()与end()是可以使用,也就是list也可以用,而for_each()函数 RAII 所谓的RAII,全称为Resource Acquisition Is Initialization,汉语是“资源获取即初始化”。但是这个直译并没有很好地解释这个词组的含义。其实含义并不高深复杂,简

  • 【春招预热】C++回炉重造2022-03-20 13:33:37

    本文主要参照[https://m.nowcoder.com/tutorial/93/a34ed23d58b84da3a707c70371f59c21]进行梳理,进行一定补充,更正了一些错误,删除部分失效内容。 C++基础知识 C and C++ 导入C函数的关键字 - extern "C" 指示编译器这一段代码将按照c来编译 编译区别:C++编译时会包含参数类型,而C不支

  • 动态内存2022-03-20 08:34:40

    #include<iostream> #include<string> #include<vector> #include<numeric> #include<list> #include<functional> using namespace std; /* 到目前为止,我们使用的对象都有严格的生存期,全局对象在程序启动时分配,在程序结束时销毁 对于局部自动对象,当我们进入其定义所在的程序块时

  • opencv在图像上显示移动鼠标对应的RGB像素值2022-03-19 09:59:27

    #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include<opencv2/highgui.hpp> #include <iostream> #include <stdio.h> #include<vector> using namespace

  • 微信机器人之PC微信hook2022-03-18 18:10:16

    想实现微信机器人软件的主要构成分为一个主进程exe和一个注入的dll,主进程exe:把dll注入到微信,发送指令给dll,接受dll的信息,注入的dll:被注入到微信内部,拦截微信的数据,调用微信的功能接收主进程的指令,执行指令对应的操作、发信息给主进程,通过这样的操作,就能实现获取信息和发送信息的最

  • test2022-03-09 12:32:45

    test `include<bits/stdc++.h> using namespace std; const int maxn = 2000000 + 5; define debug(x) (void)(cerr << "L" << LINE << " : " << #x << " = " << (x) << endl ) int judge(s

  • RT-Thread学习2 —— 内存管理学习记录2022-03-08 09:34:06

    RT-Thread学习2 —— 内存管理学习记录1 小内存管理算法(mem.c) 1. 小内存管理法: 小内存管理算法是一个简单的内存分配算法。初始时,它是一块大的内存。当需要分配内存块时,将从这个大的内存块上分割出相匹配的内存块,然后把分割出来的空闲内存块还回给堆管理系统中。每个内存块都包含

  • 汇编 两数相加 两个 32 位十进制数相加 变量存放数据2022-03-03 13:04:58

    两数相加 将两个 32 位十进制数相加,被加数和加数存放在 DATA 段内的 N1 与 N2 两个变量中,要求将相加结果送入 N3 变量中。 DATA SEGMENT N1 DD 12345678H N2 DD 87654321H N3 DD ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,WOR

  • 双指针系列12022-03-03 10:01:40

      这道题目没什么好说的,就是分为两种情况,要删除的链表节点是头结点和要删除的节点是非头结点  ListNode* deleteNode(ListNode* head, int val) {         if(head==NULL) return NULL;         ListNode *ptr=head;         if(ptr->val==v

  • C++智能指针2022-03-02 23:35:54

    之前学习锁,用到了lock_guard,让我想起了自己智能指针部分还有所欠缺,故借机学习一波 智能指针:一个对于指针的封装,目的在于更好的管理内存,防止指针使用中的内存泄漏、二次释放等问题的产生。在C++的<memory>库中,有以下几种指针:auto_ptr、auto_ptr_ref、shared_ptr、weak_ptr、uniqu

  • 记录编译链接高博ORBSLAM2_with_pointcloud_map时两个比较费力的问题2022-03-02 23:01:44

    两个orbslam2_modified中make报错但网上很难找到直接答案的问题: 一. build Optimizer.cc的过程中提示g2o函数参数不正确  在build过程中Optimizer.cc出现类似下述开头的no matching function for call to错误: no matching function for call to ‘g2o::BlockSolver<g2o::BlockS

  • c函数重写2022-03-02 13:00:07

    strlen()函数 unsigned int mstrlen(const char *s){ const char *ss = s; while (*ss) ss++; return ss - s; } strncmp()函数 int mstrncmp(const char *s1, const char *s2, int n){ const unsigned char *c1 = (const unsigned char *)s1;

  • C++Primer学习笔记(11)2022-03-01 22:58:15

    这篇文章的内容是动态内存。 这一块有点进阶了,是之前很少接触过的部分了。 关注点有这几个:全局对象、局部对象、局部static对象、动态对象。 提炼一下:静态内存、栈内存、自由空间(堆)。不同的内存空间有相对应的对象。 一、动态内存与智能指针 都是重点,每一句话都值得去记

  • c++动态内存管理与智能指针2022-03-01 12:59:49

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 目录* 一、介绍 二、shared_ptr类 make_shared函数shared_ptr的拷贝和引用shared_ptr自动销毁所管理的对象……shared_ptr还

  • C语言习题——倒置字符串及单词倒排问题2022-03-01 10:07:09

    倒置字符串原题链接 倒置字符串_好未来笔试题_牛客网 (nowcoder.com) 下面给出代码: #include <stdio.h> #include <string.h> void reverse(char* left, char* right) { while (left < right) { char tmp = *left; *left = *right; *right = tmp; left++; right--;

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

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

ICode9版权所有