自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 条款18:避免使用vector<bool>

问题今天在刷leetcode的时候,写的代码有一个地方一直报错,但是却找不到问题所在 //...... vector<bool> dp(len2+1,false); //..... dp[j] |= dp[j-1] ; //这个地方一直报错,none viable overload |=我起初以为是bool类型不能用这个|=运算符吗,但是尝试了之后是可以的。发现最后找到问题所在,effective STL中条款18说不建议用vector,因为在vector内部会把这个

2020-07-18 23:01:50 446

转载 list(双向链表)

list概述环状双向链表特点:底层是使用链表实现的,支持双向顺序访问,不支持随机访问,因此访问某个元素需要遍历在list中任何位置进行插入删除都很快,不会像vector那样子需要逐个移动其他元素每个节点需要额外的内存list节点list的每一个节点都是一个结构体:template <class T>struct __list_node { typedef void* void_pointer; void_pointer prev; //类型为void*。其实可设

2020-05-24 23:03:35 697

转载 vector

1.vector概述vector的数据安排以及操作方式与array非常类似。两者唯一的差别就是在于空间的运用灵活性,array是静态空间,一旦分配了就是固定的,无法改变其大小。需要用户重新申请更大的空间,移动数据,释放原来的空间。而vector是动态空间,有其内部的空间分配机制来及时调整空间大小,其实就是vector把申请空间,移动数据,释放原来的空间等操作封装在内部,不需要用户去处理。//alloc是SGI STL的空间配置器template <class T, class Alloc = a

2020-05-23 17:36:32 1441

原创 malloc,free的一些点

前几天学习c++的内存管理,new和delete,看的视频大部分都是讲解到底层调用malloc和free。我当时看视频简单的以为malloc就是分配个多大空间的内存,free就是把指针指向的大小释放掉,释放的多少根据指针指向对象的类型判定。但是在写内存池时有一个严重的问题,我malloc(n)的时候多次把指针转换为char*,导致我释放的时候不知道怎么根据char来释放掉这个大小为n的内存块。因为free传递的参数只有一个void指针。后来我尝试搜了一些资料,发现,malloc和free在分配内存的时候其

2020-05-19 10:50:12 131

原创 二维vector的内存分配

二维vector的内存分配新的改变第一次写博客,难免比较粗糙。之前的误区之前一直以为二维vector的在内存中是各个一维vector拼接在一起的,今天才发现是错误的。在内存中,二维vector的每个子vector内部是连续的,但是子vector之间是非连续的。且vector[0]和vector[0][0]地址都是不同的。我用vs2019进行测试的,我把一个二维数组插入了元素,然后输出每个元素的地址,结果如图...

2020-05-16 11:40:52 1856

空空如也

空空如也

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

TA关注的人

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