自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 用vector的.data()来访问数据相当于裸指针访问,这时越界访问编译器不会报错

写法是否安全是否边界检查行为arr[11]❌否不抛错,未定义行为arr.at(11)✅是抛出异常(安全)❌否相当于裸指针越界访问❌否同样是未定义行为。

2025-07-09 16:18:53 641

原创 用指针创建数组时,不会报越界访问错误

注意,用指针类型来定义数组,new一片内存区域时,当我们超出数组边界进行访问时是不会报错的,会继续往之后的地址进行操作,且会延长指针所指向这片内存的长度。delete的时候会把这片越界访问的内存删除掉。这样会出现很多问题,可能会访问到别的变量已经定义到的内存并修改,也可能会在delete的时候由于两个指针有一片内存区域重复,造成内存重复释放。

2025-07-04 19:23:53 117

原创 matlab中一个很大的矩阵设置为用zeros设置为矩阵,matlab会视为稠密矩阵进行计算

是的,你的怀疑是,这个现象背后的原因确实与有关,这会极大地影响大规模矩阵乘法的效率。

2025-07-02 22:46:34 332

原创 matlab中数值与矩阵做加法会广播

在 MATLAB 中,时,MATLAB 会自动进行,将这个数值加到矩阵的。

2025-07-02 22:39:53 366

原创 虚拟地址空间

虚拟地址空间(Virtual Address Space)是现代操作系统中一个非常核心且关键的概念。虚拟地址空间是现代操作系统实现多任务、内存保护、高效内存管理的基础。,是操作系统为每个程序(进程)提供的一种。

2025-07-01 10:17:56 487

原创 二叉树的存储

在实际应用中,会根据二叉树的类型、操作需求以及对空间和时间效率的要求来选择合适的存储方式。二叉树既可以用数组存储,也可以用链表存储,两种方式各有优缺点。

2025-06-30 14:32:11 356

原创 什么时候可以使用range-based for循环,哪些数据结构可以哪些数据结构不行

range-based for 循环是一个非常方便的语法糖,它使得遍历容器或序列变得更加简洁和可读。它的核心依赖是数据结构能够提供一对有效的迭代器 (begin()和end()) 来定义遍历的范围。理解这个核心概念,就能判断哪些数据结构可以被这样遍历了。

2025-06-29 14:47:44 1568

原创 堆是完全二叉树结构,在C++中以一维数组的形式存储。

堆的结构虽然是一个完全的二叉树结构,但是其在计算机中仍然是以一维数组的形式存储的,只是按照二叉树的顺序进行了排序,本质上上还是一维数组。所以对堆或者二叉树进行增删操作,实际上是对这个二维数组进行操作。

2025-06-29 14:08:19 105

原创 鹭岛实习日志-------------------C++中关于一些库需要用列优先输入,应该怎么操作.

因为在C/C++中矩阵的存储实际上的都是一维的按行优先进行存储的,但有很多类似于pardiso的数学库,它们函数的输入都是列优先的,那么我们在用这些函数的时候就需要把我们的矩阵存储介个从C++中的行优先改为列优先输入,,这样在原c++函数里面更加适配。函数也在C++里面更加通用。

2025-06-28 17:47:38 189

原创 sizeof与指针和数组

运算符对于数组和指针的行为是不同的。你需要通过其他方式(例如,将大小作为一个单独的变量存储或作为函数参数传递)来管理和追踪动态分配内存的大小。运算符时,它返回的是指针本身在内存中占用的字节数,而不是它所指向的内存空间的大小。这通常是 4 字节(在 32 位系统上)或 8 字节(在 64 位系统上),取决于系统的架构。这种设计是 C++ 内存管理的核心部分,它给予了程序员极大的灵活性,但也要求程序员对内存分配和释放有清晰的理解和责任。运算符的行为确实有所不同,这也是 C++ 中一个常见的混淆点。

2025-06-28 16:51:26 399

原创 static函数的作用与使用场景

表示该成员函数是类的静态成员函数。通过类名直接调用,不需要创建对象。不能访问非静态(实例)成员。没有this指针。特点C/C++中修饰全局/文件作用域函数 (static函数)C++/Java/Python等面向对象语言中修饰类成员函数 (static方法)修饰对象独立的函数定义(在任何类外)类的成员函数主要作用限制链接性,使其只在当前编译单元可见表示函数属于类,不依赖于对象实例调用方式直接通过函数名调用通过类名调用(例如this指针无关无this或self指针访问成员。

2025-06-23 12:01:56 1639

原创 关于内联函数的使用

条件inline 更快?说明函数非常小✅ 通常是避免调用开销函数很大❌ 通常更慢代码膨胀,cache miss循环中反复调用❌非 inline 更紧凑编译器启用 -O2/-O3🤖 编译器决定不一定遵循 inline 关键字开启 LTO (Link-Time Optimization)✅ 编译器可跨文件内联更精准内联策略。

2025-06-23 11:49:53 261

原创 vector<vector>的行主序但内存不连续,arma::mat的列主序且内存连续

数据结构是否连续存储是否适合数值计算❌ 不连续❌ 不推荐模拟二维✅ 连续✅ 高效arma::mat✅ 连续(列主序)✅ 高效。

2025-06-20 21:17:52 357

原创 鹭岛--实习日记

今天学到的一个很重要的概念就是,对于计算机来说没有任何高维的东西,所有高维数组对应到计算机之中都是一维的,计算机中内存都是连续的,所以所有的值都是一维连续的。实现高维只需要对内存分块取偏移就可以。

2025-06-20 21:02:17 357

原创 二维指针名称的的含义

Q表示“行指针数组”的首地址,不是数据区的首地址。Q[0]或&Q[0][0]才是数据区(即矩阵元素)的首地址。类似一维数组名代表首地址,二维指针要用Q[0]才能代表数据区首地址。

2025-06-20 19:52:44 177

原创 C++实现二维数组的内存连续

你的Vector2D。

2025-06-19 20:14:12 134

原创 操作系统是如何给文件描述符(fd)分配内核文件结构体的

给文件描述符分配结构体,这实际上是在描述内部是如何管理和追踪你程序打开的每一个文件或I/O资源的。

2025-06-15 16:19:12 717

原创 VSCode 中怎么生成.sln解决方案文件

使用dotnet CLI命令来创建.sln文件和项目文件 (.csproj在 VS Code 中打开包含这些文件的根文件夹,让 C# 扩展来识别和管理它们。VS Code 本身没有像 Visual Studio 那样直接的“文件 -> 新建 -> 解决方案”菜单项,它更倾向于通过命令行工具和扩展来管理项目结构。

2025-06-13 15:26:04 2877

原创 VSCode 链接多个文件时要注意的地方

但你自己定义了头文件和与之相关的.cpp文件,但这个时候你需要链接到其它的.cpp文件就会报错,因为这个可执行文件只包含当前文件的二进制可重定向文件(.o),像我要链接到leetcode28.cpp文件,就要在tasks.json中的args中添加这个’‘leetcode28.cpp’’VSCode真麻烦啊,搞了一上午终于配置好环境了,不过也有收获,也让我进一步复习了编译器生成可执行文件的过程。但是这样有一点麻烦,看网上教程再去修改为自动编译全部文件吧。

2025-06-13 11:44:49 263

原创 为什么assert()要设计为宏

assert确实是,而不是函数,这在 C/C++ 编程中是一个重要的概念区别。深入探讨宏和函数的本质区别,以及为什么assert被设计成宏。

2025-06-11 16:55:13 655

原创 assert()断言处理

是一种在程序开发和调试阶段用于检查关键假设的工具。它帮助开发者在“不应该”出现错误的情况下,如果真的出现了错误,能够迅速发现并定位问题。在发布版本中,它通常会被禁用,因为它假定在经过充分测试后,这些“不应该”发生的错误已经得到了解决。表示错误的函数,但从你的程序逻辑来看,这个函数在当前上下文下“不应该”失败。在 C/C++ 中是一个常见的错误指示值(例如,系统调用失败时通常返回。是 C/C++ 语言中一种常见的调试宏。是一个函数的返回值,而。假设你调用了一个会返回。

2025-06-11 16:53:17 364

原创 abort()异常终止函数

是一个“紧急停车”的函数。当程序运行到某个点,发现自己处于一个无法理解或处理的严重错误状态时,为了防止更大的问题(例如数据损坏、安全漏洞),它会选择立即。它不进行任何清理,并通常会留下核心转储,以便开发者事后分析问题。,它无法继续安全地执行下去。是一个 C/C++ 标准库函数,定义在。函数通常用于表示程序遇到了一个。

2025-06-11 16:49:43 544

原创 Leetcode-28 KMP算法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2025-06-11 11:58:11 261

原创 网红项目TinyWebServer测试记录

还要注意的一点就是localhost:9006这里localhost你填ip地址或者填localhost都行,都代表本机地址,127.0.0.1和localhost在大多数情况下可以互换使用。需要注意的点是,首先要进入到mysql,然后去创建你自己的数据库yourdb,注意先进入MySQL再创建,我就傻乎乎以为在终端直接输入就行…这里配置好了./sever才能正常运行,不然运行服务器会闪退,注意正常应该是一直不退出来的,退出来多半是没有连接到数据库。服务器在运行的时候就可以去运行网页了。

2025-06-10 17:42:49 353 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除