Gbiner
Gbiner

let me = me.better();

All Posts in 2023.2


偶遇“曼哈顿距离”

本篇博客主要探讨了“曼哈顿距离”的概念和用途。曼哈顿距离,又被称为计程车几何或方格线距离,是由十九世纪的赫尔曼·闵可夫斯基所创辞汇,用以标明两个点上在标准坐标系上的绝对轴距之总和。这种距离的命名源于城市(如曼哈顿)的方格式建筑区块,最短行车路径即为曼哈顿距离。 曼哈顿距离在实际应用中有其优势。例如,在计算性能有限的早期,使用曼哈顿距离可以避免浮点运算的高代价,通过只计算整型和加减,大大提高性能。此外,当数据集具有离散和/或二进制属性时,曼哈顿距离也表现出其优势,因为它考虑到了现实中在这些属性值内可以采取的路径。 然而,曼哈顿距离也存在一些缺点。虽然它对于高维数据似乎还不错,但它是一个比欧几里得距离更不直观的测量方法,尤其是在高维数据中使用时。而且,它比欧几里得距离更容易给出一个更高的距离值,因为它不可能是最短路径。这不一定会带来问题,但你应该考虑到这一点。 那么,你是否了解过曼哈顿距离?你是否在实际应用中使用过它?如果使用过,你是否觉得它比欧几里得距离更有优势?--GPT 4

Game Algorithm

什么是C++的野指针?

本文主要讨论了C++中的"野指针"概念,详细解释了野指针是指向"垃圾"内存的指针,而非NULL指针。文章首先提出了野指针的几种产生情况。首先,如果指针变量未初始化,那么它将随机指向一个地址,这就可能导致野指针的产生。因此,建议在创建指针变量的同时进行初始化,让它指向合法的内存或者置为NULL。其次,如果指针释放后未置空,那么它仍然会指向一个已经被释放的内存区域,这同样可能导致野指针的产生。因此,使用delete或free释放指针变量指向的内存后,应及时将指针置为NULL。最后,如果指针操作超越了变量的作用域,也可能产生野指针。文章最后强调了防止野指针产生的两个关键步骤:初始化时置NULL,释放时置NULL。这篇文章是否让你重新思考了你的编程习惯?你有没有遇到过由于野指针导致的问题?你是如何解决的?--GPT 4

Tutorial C++