首页
Arrebol's blog
取消

c++ 中 new 的实现

new 操作符在 c++ 中用于动态分配内存,创建对象,并返回指向分配的内存的指针 首先会计算需要分配的内存大小 尝试分配所需要大小的内存 如果分配成功,则会调用构造函数来初始化对象,并返回指向新分配内存的指针 分配失败,会导致返回空指针或抛出异常 返回空指针:如果分配内存失败,即堆中没有足够的空闲内存来满足要求,new 操作符会返回一个空指针(nu...

c++ 中的 proority queue

C++ 中的优先级队列是一种数据可够,它按照指定的优先级对元素进行排序。默认情况下,优先级队列使用大顶堆来实现,也可以通过传入自定义的对比函数来改变排序方式 头文件:定义了优先级队列模板类 `std::priority_queue` 创建优先级队列 #include <queue> std::priority_queue<in...

c++ 和 c 的区别

区别 c++ 是面向对象编程语言;c 是面向过程编程语言 c++ 支持函数重载,c 不支持 c++ 引入命名空间,避免不同库之间的命名冲突;c 不支持 c++ 支持异常处理机制(try-catch-finally);c 不支持 c++ 使用 new 和 delete 操作符;c 使用 malloc 和 free 操作符进行动态内存分配和释放 c++ 可以使用引用;...

c++ 中的 sort 函数

c++ 中 sort() 函数通常会根据输入序列的大小和其它一些条件来选择不同的排序算法 插入排序 当待排序序列的长度较小(通常小于一定的阈值 stl_threshold)时,通常会使用插入排序。插入排序在小规模数据上的性能较好,因为它涉及的交换和比较操作相对较少。插入排序适用于部分有序或近乎有序的序列 快速排序 当待排序序列的长度较大且无序时,通常会选择快速排序。快排在平均情况下性...

c++ 中的template/模版

C++ 模版是一种对类型进行参数化的工具。通常有两种形式:类模板和函数模板。使用模板可以编写通用代码,不限于特定数据类型 类模板 template <typename T> class MyTemplate { private: T data; public: MyTemplate(int val) : data(val) {} T getValue(...

C++ 中 lamda 表达式的实现原理

C++ 中的 lamda 表达式是 C++11 标准引入的特性,用于创建匿名函数。它的实现原理涉及到编译器的词法分析、语法分析以及闭包的概念。 使用方法: // 显示设置返回值 [capture](parameters) -> return_type { // lamda body } // 编译器自动推理返回值 [capture](parameters) { /...

Macos 使用 conda 创建 python3.7 虚拟环境失败

Macos M1 芯片,Anaconda使用 conda create -n py37 python=3.7 时,出现: Collecting package metadata (current_repodata.json): done Solving environment: failed with repodata from current_repodata.json, will re...

Ubuntu18.04 使用 nmap 查找 ip,并配置静态 ip

前言 笔者之前服务器用的是局域网的 ip,这就导致服务器的 ip 会经常发生改变。每次改变后,都是傻乎乎的去服务器上物理查看服务器的 ip 地址。于是有了本篇。面对这种问题,笔者目前找到了两种方法: 使用 nmap 查找服务器 ip(不方便) 将服务器 ip 配置成静态 ip(一劳永逸) 使用 nmap 查找服务器 ip 首先查看局域网的网段是多少。比如我...

Mac 使用 Home-brew 安装 PCL 和 OPENCV,并在 CLion 中使用

安装 PCL 和 OPENCV brew install pcl brew install opencv brew install cloudcompare CLion 中的 CMakeLists.txt 编写 cmake_minimum_required(VERSION 3.21) project(GlueSeg) # 项目名称 set(CMAKE_CXX_STANDARD 1...

hacking-cpp-1

Hello World 参考 Hacking c++ 写在最后 感谢你在茫茫人海中找到我🕵🏼 🎉你是第 个读者 ㊗️ 你平安喜乐,顺遂无忧! 希望你读完有所收获~ 🥂🥂🥂