自定义博客皮肤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)
  • 收藏
  • 关注

原创 c++ 继承详细总结

c++中的继承 1:继承的概念及定义 a.继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。 b.继承定义 定义格式: class Student : public Person { public: int _id; int _major; } 继承关

2020-08-14 23:16:42 233 1

原创 C++ list与vector的区别总结

vector vector和数组类似,它拥有一段动态连续的内存空间,因此它能非常好的支持随机存取(即使用[]操作符访问其中的元素),但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝(复杂度是O(n)),另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。 vector介绍与实现 vector模拟实现 list list是由数据结构中的双向链表实现的,因此它的内存空间可以是不连续的。因此只能通过指针来进行数据的访问,这

2020-08-07 11:55:03 639

原创 C++ list深度刨析及模拟实现

1.list的介绍及使用 1:list的介绍 官方文档 1:list是可以在常数范围内任意位置插入和删除的序列式容器,并且该容器可以前后双向迭代; 2:list的底层是双向链表结构,双向链表的每个节点存储在互不相关的独立节点中,在节点中通过指针指向其前一个和后一个元素; 3:list与forward_list非常相似:最主要的是forward_list是单链表,只能朝前迭代,以让其更简单高效; 4:与其他序列式容器相比(array,vector,deque),list通常在任意位置进行插入,移除圆度的执行

2020-08-07 11:31:34 290 1

原创 C++vector深度刨析及实现

vector介绍及使用 1:vector介绍 官方文档 1:vector是可变大小数组的序列容器 2:就像数组一样,vector也采用连续存储空间来存储元素。也就意味着可以采用下标的方式对vector 的元素进行访问,和数组一样高效。但是又不像数组,它的大小是 可以动态改变的,而且它的大小会被容器自动处理。 3:本质上讲,vector使用动态分配数组来存储元素。当新元素插入时,这个数组需要被重新分配大小来增加存储空间。其做法是,分配一个新的数组,然后将全部元素移动到这个数组当中去。就时间而言,这是一个相对

2020-08-05 23:55:48 370

原创 c++string类实现(现代写法与传统写法)

标准库中的string类: string是表示字符串的类; 该类的接口与常规容器的接口基本相同,再添加了一些专门操作string的常规操作; string在底层实际是:basic_string模板类的别名:typedef basic_string<char,char_traits,allocator>string; 不能操作多字节或者变长的序列; string类的常用构造函数 string() 构造空的string类对象 string(const char* s) 用C风格

2020-08-03 10:17:30 341

空空如也

空空如也

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

TA关注的人

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