自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++ vector 对于内存的分配方式

我的理解是vector是作为一个模板类来实现的,和一般的简单数组类型如int arry[]不同,对于前者,&data代表的是vector对象的地址,&data[0]代表的是第一个元素的地址,元素应该是作为vector类的成员变量存在的,而后者数组的地址即是数组中第一个元素的地址。根据结果可以看到capacity的大小依次为1,2,3,4,6,9,13,19,28,42,63,94,141。写了个简单的代码实验了一下。此外在验证过程中发现虽然地址&data[0]发生了变化,但地址&data是不会改变的。

2023-05-05 18:52:47 940

原创 关于bitset<N>()中N必须为常量表达式

(另外bitset变量实际上是按照字节数存储,如N=7时,sizeof长为1字节,即8bit。)和静态数组的长度必须在声明时指明具体的值,而不能使用变量声明静态数组的长度的道理一样。搜了一下bitset的用法,给出的示例里面基本上都是bitset b(s),这样N的位置是常数的情况,没有特别说明n不能是变量/常变量。一开始是这样写的,编译器一直报错n不是constant-expr,就很奇怪。然后看了下源代码和一些报错提醒,应该是要求N必须是。,也就是说初始化N的表达式。

2023-05-04 16:43:39 474 1

原创 快速排序(思想+实现)

每次从待排序的数组中选取一个元素作为基准,将所有小于基准的元素放到其左侧,大于基准的元素放到其右侧。每一趟排序,遍历n个元素,时间复杂度O(n),确认1个元素的位置。第1趟排序,遍历n个元素,时间复杂度O(n),确认1个元素的位置;第2趟排序,遍历n个元素,时间复杂度O(n),确认2个元素的位置;第3趟排序,遍历n个元素,时间复杂度O(n),确认4个元素的位置;第4趟排序,遍历n个元素,时间复杂度O(n),确认8个元素的位置;每次排序确认的元素个数呈2的指数倍增长,因此确认n个元素只需要。

2023-04-25 19:43:28 200 1

原创 C++ STL 一些常用函数

注意:不要和itoa弄混,itoa即是int to array(string?)是把整型转换为字符串。c++11新特性,把连续递增的值,赋给一段连续的内存空间的数据。是基于迭代器和模板实现的。另,其实使用iota不会提高效率,也是遍历赋值的,只是代码更简洁而已。

2023-04-25 19:12:48 164 1

空空如也

空空如也

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

TA关注的人

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