自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 棋盘覆盖问题

在一个2^k×2^k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖;问:是否能用这些骨牌覆盖棋盘?问题解析目前有16*16的棋盘,特殊方块如图上所示。​​​​​​​对于此时的左上角,相当于是一个全新的棋盘,其尺寸为大棋盘的1/4,新棋盘拥有特殊方块;其他三个也同理,将第一块骨牌拆分,分别当作各自棋盘的特殊方块。

2023-11-05 22:45:41 169 1

原创 继承、菱形继承问题、虚拟继承、虚基表

继承和组合public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象。优先使用对象组合,而不是类继承。

2023-10-08 10:59:21 78 1

原创 priority_queue的模拟实现

优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中元素构造成 堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用priority_queue。注意: 1.默认情况下priority_queue是大堆。 2.(重要) 如果priority_queue中放自定义类型的数据,“用户需要在自定义类型中”提供> 或者< 的重载,以重新定义在此类中">"和"

2023-09-17 20:03:10 39 1

原创 模拟实现vector中reserve接口所遇到的拷贝问题

结果:报错,程序崩溃问题分析:1. memcpy是内存的二进制格式拷贝,将一段内存空间中内容原封不动的拷贝到另外一段内存空间中。2. 如果拷贝的是自定义类型的元素,memcpy既高效又不会出错,但如果拷贝的是自定义类型元素,并且自定义类型元素中时,就会出错,。

2023-08-24 22:23:13 62 1

原创 vector 迭代器失效问题

迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装。比如:resize、reserve、insert、assign、 push_back等。,而使用一块已经被释放的空间,造成的后果是程序崩溃(即如果继续使用已经失效的迭代器,程序可能会崩溃)。与vector类似,string在插入+扩容操作+erase之后,迭代器也会失效。对于vector可能会导致其迭代器失效的操作。2. 指定位置元素的删除操作-it的位置还是有效的。

2023-08-21 22:45:15 44 1

原创 string的浅拷贝、深拷贝、写时拷贝

(调用析构时,首先析构s2,s2与s1指向同一块内存,所以s2析构完成后,s1的内存空间也被清除,等到s1析构时,同一块空间再次被释放,多次释放就会引起程序崩溃)深拷贝产生浅拷贝的主要是因为在进行拷贝构造或是赋值运算符重载时,直接将就对象的内容原封不动的粘贴给新对象,因而在空间释放时形成了多次释放问题,因此如果一个类中涉及到资源的管理,其拷贝构造函数、赋值运算符重载以及析构函数必须要显式给出。一般情况都是按照深拷贝方式提供。传统string类的写法。

2023-08-18 16:53:01 43 1

原创 cin、cin.getline()、getline()的用法

cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

2023-08-17 01:39:21 74 1

空空如也

空空如也

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

TA关注的人

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