C++
GGuy
这个作者很懒,什么都没留下…
展开
-
float浮点数相比较会导致的错误!(浮点数精度导致的坑!!!)
浮点数精度导致的坑!原创 2022-09-15 16:59:30 · 1009 阅读 · 0 评论 -
C++文件I/O流:用fsteam实现对CSV文件的读写
【代码】C++文件I/O流:用fsteam实现对CSV文件的读写。原创 2022-08-31 13:28:24 · 559 阅读 · 0 评论 -
分享一个打印浮点型数据的十六进制形式的函数
话不多说,先上代码inline void printfloat_16(const float fnum){ uint8_t* c = (uint8_t*)&fnum; //指针指向低位字节的地址,所以最先传给c的是低位字节 printf("0x"); for(auto i = 3;i >= 0;i--) printf("%02x",c[i]); //先获得的是低位字节,所以应该把低位字节放在最原创 2022-04-27 19:34:50 · 3092 阅读 · 0 评论 -
堆排序方法学习记录
1.堆(完全二叉树)中寻找位置需要的三个重要的公式1.结点 i 的父节点为(i-1)/2 (除根节点外)2.结点 i 的左子女为 2i+13.结点 i 的右子女为 2i+22.下滑调整算法siftdown与最大堆的建立下滑调整算法只对局部范围有效。也就是对当前子树(父节点,左孩,右孩)有效,只有进行了交换,算法才会往下滑,所以利用siftdown进行堆建立时,必须从堆的最后一个子树开始(最后一个父节点),逐步向上调整至根节点void siftDown(vector<int> V,原创 2021-11-21 11:51:59 · 465 阅读 · 0 评论 -
一个C++新建链表时很容易混淆的经典错误
**1.错误:**在作者刷题时,遇到了一个情况,需要用到两个链表去完成一个操作:用first指针储存链表p的首元素的地址,用于做return(函数返回链表首地址),在这个过程中,p在不断的扩展,接收新元素。以下是错误代码:ListNode *mergeTwoLists(ListNode * l1, ListNode * l2) { ListNode *p, *first = new ListNode; int count = 0; do {//此处代码忽略,即p链表扩充的操作,与总结无关原创 2021-10-20 19:01:47 · 258 阅读 · 0 评论 -
int*与int*&
很多CPPers都会对指针和引用的使用感到头疼,特别是在两者混用的时候。而指针和引用一个最大的用途就是作为函数形参。以下为本人总结的一些int* 与 int*&在作为函数形参的使用中的区别1.int* value指针大家都不陌生,指针在作为函数形参时,最广泛的用途就是传入数组的首地址,进而在函数中对数组进行操作。int Calc(int *value){ //value则为数组value[]的首地址 //可以直接使用value[]操作数组}所以,用int* value作为原创 2021-09-04 10:50:20 · 8414 阅读 · 0 评论