撰写于 2022
  • 智能指针简介与使用

    Wednesday, October 12, 2022 在 c++笔记

    智能指针 为了解决动态内存分配时带来的内存泄露以及多次释放同一块内存空间而提出的 传统的指针在申请完成后, 必须要调用 free 或 delete 来释放指针, 否则容易产生内存泄漏的问题 smart pointer 遵循 RAII 原则, 当 smart pointer 对象创建时, 即为该指针分配了相应的内存, 当对象销毁时, 析构函数会自动释放内存, 需要注意的是, 智能指针不能像普通指针那样支持加减运算(迭代操作) 智能指针的类型 unique_ptr: 独享所有权的智能指针, 资源智能 …

    更多

  • 智能指针的创建

    Wednesday, October 12, 2022 在 c++笔记

    make_unique 和 make_share 优先使用 std:make_unique 和 std:make_shared, 而非使用 new; make_unique: 减少代码量, 能够加快编译速度, 定义两边类型时, 编译器需要进行类型推导, 会降低编译速度, 某些意外情况下可能会导致内存泄漏, 但是 make_unique 不允许自定析构器, 不接受 std:initializer_list 对象 make_shared: 这个主要是可以减少对堆中申请内存的次数, …

    更多

  • 什么是类

    Thursday, April 28, 2022 在 c++笔记

    更多

撰写于 2021
  • 容器相关

    Monday, November 01, 2021 在 stl

    描述 stl 提供的数据类型 序列容器 序列容器存储元素的顺序集合,支持随机访问或顺序访问。 vector: array 特点: 动态数组, 支持随机访问, 末尾插入和删除效率高 使用场景:适用于需要频繁随机访问和在末尾进行插入和删除操作的场景。 #include <vector> #include <iostream> int main() { std::vector<int> vec = {1, 2, 3, 4, 5}; vec.push_back(6); …

    更多

  • 迭代器相关

    Monday, November 01, 2021 在 stl

    描述

    更多

  • c++ 在visual studio和XCode上的差异

    Saturday, September 18, 2021 在 c++笔记

    描述 Visual Studio 和 Xcode 在处理 C++ 方面的主要差异在于它们所使用的编译器、工具链以及它们各自的集成开发环境(IDE)特性。以下是一些关键的不同点: 1. 编译器 Visual Studio 使用的是 Microsoft 的 C++ 编译器(MSVC),该编译器有自己的语法扩展和特性,虽然它也支持大部分的 C++ 标准。 Xcode 使用的是 LLVM/Clang 编译器,这是一个开源编译器,其设计目标之一就是提供清晰的诊断信息,并且它对现代 C++ 标准的支持非常 …

    更多

  • 如何避免写 c 代码的时候 Unhandled Exception:Stack overflow

    Tuesday, March 23, 2021 在 c++笔记

    避免 C 程序出现堆栈溢出异常(Stack Overflow Exception)通常需要注意以下几点 优化递归算法:如果程序中使用了递归,确保递归深度可控,避免无限递归或递归层次过深。 减少局部变量的数量和大小:函数内部声明的局部变量会占用堆栈空间,特别是对于大型数组或结构体。优化代码,尽量减少或优化局部变量的使用。 动态内存分配:考虑使用动态内存分配函数(如 malloc()、calloc()、realloc())来管理大型数据结构,而不是将它们放在栈上。 避免过度递归:如果递归是必须的,确 …

    更多

撰写于 2020
撰写于 2019
  • 左值和右值

    Thursday, October 24, 2019 在 c++笔记

    更多

  • Python 虚拟环境

    Tuesday, March 12, 2019 在 python

    什么是 python 的虚拟环境 Python 虚拟环境是 Python 开发中的一种工具,用于创建和管理独立于系统全局 Python 环境的隔离环境。每个虚拟环境都可以拥有自己的 Python 解释器和独立的包集合,这使得在同一台机器上同时进行多个项目开发时能够保持环境的干净和隔离。 为什么需要 python 的虚拟环境 隔离依赖:每个虚拟环境都有自己的 site-packages 目录,用于存放安装的第三方包,这样可以避免不同项目之间的包冲突。 版本管理: …

    更多