c++
文章平均质量分 81
爱敲键盘的小小志
努力工作不想加班QAQ
展开
-
28map,set关联式容器
序列式容器 vector、list、deque(单纯的纯数据)关联式容器 map、set,哈希,,,(数据之间有很强的关联性,不是单纯的为了存储数据)原创 2024-04-22 16:47:27 · 724 阅读 · 0 评论 -
内存管理,string模拟实现(中)
如果修改数据 例如tmp【0】=‘x’ 这时还带深拷贝 引用计数,为2时说明还有人指向这块空间,就只能深拷贝,然后计数--;vs是深拷贝,llinux是浅拷贝linux修改后 s1修改了s2不动。原创 2024-03-20 11:53:55 · 404 阅读 · 0 评论 -
c++21,22多肽
这里没有构成多肽,因为p不是父类的指针或者引用调用的重载,覆盖(重写),隐藏(重定义)的对比。原创 2024-03-20 11:53:01 · 668 阅读 · 0 评论 -
24c++多肽
虚函数在哪?虚函数表存那在哪?堆?栈?静态区?代码段?虚函数和普通函数一样一样,都是存在代码段,同事吧虚函数地址存了一份到虚函数表虚函数表在哪呢?不会在栈,或栈,堆是动态分配,没有分配和释放打印虚表的地址虚函数地址跟下面的普通函数的地址是放在一起的虚函数的地址一定会被放到虚函数表里面么?重写了fun1所以d中1地址变了2没变(继承下来)但是没有3,4, 5不是虚函数base不一定是唯一父类,Derive也可能是某个子类的父类。原创 2024-03-20 11:50:05 · 447 阅读 · 0 评论 -
const T* 和T* const
是另一种类型,它同时限制了指针本身和指针所指向的值都不能被修改。这种类型通常用于那些既需要保证数据稳定性又需要保证指针稳定性的场景。这两种类型的主要区别在于“const”修饰的是指针本身还是指针所指向的值。则用于创建一旦指向某个对象就不能再改变的指针,这通常用于保证某些资源的稳定性或安全性。这两种类型都涉及到指针和常量,但它们的含义和使用场景有所不同。通常用于保证函数不会修改传入的指针所指向的数据,而。原创 2024-02-24 09:57:16 · 238 阅读 · 0 评论 -
19,20模版进阶
也不需要自己写,当我们拷贝构造时候会发现没有拷贝成功,因为数据已经出队了。原创 2024-02-22 16:06:54 · 581 阅读 · 0 评论 -
18,19,20 ,栈,队列,优先级队列
实际中deque不常用,下边随机访问还带看vector ,如果说头尾插入删除deque还不错,作为栈和队列的适配器还不错,略优于vector(没有扩容尾插(vector尾插需要遍历)),list(不用每次插入删除都要开辟空间)。简单了解deque。原创 2024-02-22 12:09:37 · 1760 阅读 · 0 评论 -
c++内存管理(上)
在这不会内存泄漏,因为p1是内置类型,operator new 【】会调用operator new,再调用malloc再调用构造函数,但是内置类型不调用构造,delete也不用调用析构,所以这三个都不会出现问题。new开辟40个字节,其实是44个字节, delete【】会识别前面的字节知道有多个, 他就会取10个字节调用析构函数,但是free和delete不会识别。这里func(S1)传参为了避免拷贝,和深拷贝,用引用,加上const防止更改,但是会报错,因为迭代器iterator是。原创 2024-02-02 08:47:04 · 679 阅读 · 0 评论