标签: C++

15 篇文章

合并两个有序链表(双指针)
题目 原题为LeetCode 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 提示: 两个链表的节点数目范围是 [0, 50] -100 <= Node.val <= 100 l1 和 l2 均按 非递减顺序 排列 样例: 输入:l1 = [1,2,4], l2…
GetMessage()与PeekMessage()的区别(Win32)
前言 众所周知 Windows的所有程序都是由消息驱动的,每个程序都有自己的消息队列,通过处理各种各样的消息来完成一系列操作,从消息队列中抓取消息的常用函数有两个,分别是GetMessage()与PeekMessage(),单从字面意思其实并不容易看出这两个函数的区别,今天刚好有空就来记录一下。 函数原型 GetMessage() BOOL Get…
利用swap()收缩内存空间(C++)
万恶之源-vector 众所周知,vector会根据输入数据自动分配内部空间,无需人为指定大小,这当然方便我们日常使用,但自动分配也就意味着一定程度上的不可控,在某些情况下极易造成内存空间的浪费,比如下面这段代码: vector<int>v; for (int i = 0; i < 1000000; i++) { v.push_b…
记录一次不太寻常的“面经”
前言 提前声明,此次面经过于离谱,可能不具备参考性 本人就读于某辣鸡双非,应聘时大三在校,小菜鸡一个 期末考完后就时不时逛一下Boss直聘,看看有没有合适的实习岗位,本来提前看好了维塔士的C++客户端开发实习,奈何已经停止招聘了,只能继续寻找其他中小厂的实习。 投了几个手游和端游小厂(我这水平大厂门都没有),有些压根不回,有些要了简历就没有下文了,…
动态多态原理浅析(C++)
前言 多态主要分为两类: 静态多态:地址早绑定,即编译阶段确定函数地址,例如函数重载、运算符重载 动态多态:地址晚绑定,即运行阶段确定函数地址 动态多态 使用条件 父类指针或引用指向子类对象 基础语法 引入一段代码示例: #include<iostream> using namespace std; class Animal { pub…
虚析构与纯虚析构(C++)
纯虚函数和抽象类 概念 首先引入“纯虚函数”和“抽象类”的概念,示例代码如下 #include<iostream> using namespace std; class Base //抽象类 { public: virtual void func() = 0; //纯虚函数 }; class Son1:public Base { pub…
菱形继承问题及解决方法—虚继承与虚基类(C++)
菱形继承 菱形继承的概念 两个派生类继承同一个基类,又有某个类同时继承着这两个派生类 菱形继承典型案例 这种继承带来的问题主要有两方面: 羊和驼都继承了动物的类成员,当羊驼想要使用时,会产生二义性 羊驼实际继承了两份来自动物的数据,但实际只需要一份 想要解决有两个思路,一是给羊驼的每一份数据加上作用域,但本质上羊驼还是继承了两份数据。二是通过虚继承…