自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SGI STL数值算法<numeric>总结

返回值的迭代器基本都需要传入一个初始值init,因为这样当输入区间是空的时候也能返回一个明确定义的结果。求幂不需要,因为输入的并非区间。返回迭代器的算法还会接受一个输出迭代器,将运算结果输出到输出迭代器指向的序列,返回最后一个写入位置的下一个位置。模板参数中,InputIterator表示不会对迭代器进行写入,所以可以接受const_iterator,而outputIterator会写入,因此outputIterator不接受带有底层const的迭代器。

2024-03-17 13:07:23 265 1

原创 迭代器定义的守则

最近在读hashtable的源码,感觉hashtable迭代器的定义方式令迭代器使用起来很别扭,而RBTree的迭代器和节点的定义是最精妙的。

2024-03-16 10:44:09 598 1

原创 SGI STL中hashtable的erase_bucket成员函数中的一个错误

以上代码摘自SGI STL的hashtable中的源码,erase在调用erase_bucket时的语义删除指定bucket桶子内[first, last)范围的元素(0表示null,删除到结尾),但是源码确是当first不为buckets[n] 第一个节点时将first后的所有元素删除。

2024-03-15 11:24:30 174 1

原创 迭代器const_iterator和iterator的实现方法与迭代器比较运算符的优化

最近在跟着侯捷老师的《STL源码剖析》学习SGI STL的源码,发现const_iterator和iterator的实现细节实在巧妙,想写一篇文章跟大家分享一下。

2024-03-12 16:36:31 1688 1

原创 变量命名规范

2.前缀词(is, can has ,need)+名词+形容词/动词,让变量更直观。1.布尔变量应该以正逻辑为主,减少反逻辑带来的可读性影响(即没有not)。

2023-08-23 19:12:39 185

原创 C++可调用对象与function

negate//取反。

2023-08-23 18:59:05 118

原创 C++类型转换运算符知识点

类型转换运算符中的type可以是任何能作为函数返回类型的类型(void除外),因此类类型到数组和函数类型的转换是不可行的,但是到引用和指针的类型是可行的。通常不应该改变对象的内容,因此类型转换运算符通常被定义成const成员。没有返回类型和形参,但实际上要返回一个type类型的值;必须定义成类的成员函数;

2023-08-23 18:53:59 112

原创 使用二分法查找有序数组的目标位置

最近一直在刷二分查找的题目,发现二分查找有很多种形式,如果使用常规的二分查找做这些题目不太方便,所以我刷题的时候总结了一种更灵活的二分法来解决这些问题。 主要思路是通过修改while循环中begin和end的赋值条件来最终使begin和end同时指向目标位置,这个目标位置可以是等于某一个目标值,也可以是满足/不满足某个条件的第一个元素。相信我,看完这一篇可以让你对二分查找有个透彻的了解!看完记得点个赞哦❤。 我一般使用C++刷题,力扣上面给的数组容器都是vector,vector

2023-08-23 16:15:31 239 2

空空如也

空空如也

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

TA关注的人

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