C++
文章平均质量分 77
乔木辛
这个作者很懒,什么都没留下…
展开
-
【Qt记录】Windows 窗口层级(Z-order)
功能:软件有一个提示弹窗,希望让他永远在最上面,保证该窗口在任何情况下不会被遮挡。由上面的问题就查找对应的api找到了SetWindowPos()。在说这个函数之前,先了解以下概念:其实这玩意翻译成 Z轴 更好。首先对于显示器而言,以左上角为坐标原点,向右为x轴,向下为y轴。除此之外,由里向外就是z轴,也就是所谓的Z-order。top of the Z order:Z轴的最顶层,虽然是Z序里最上面的,但它并不一定是最最上面的。按照Z轴的顺序,由外向里,分别是:顶端窗口–顶层窗口–子窗口。顶端窗口有TOPM原创 2022-12-03 13:36:37 · 2729 阅读 · 0 评论 -
C++:14.C++11 新标准:foreach、右值引用&&、lambda表达式、语言级别的线程与锁
关键字和新语法1、delete 指定删除类的成员方法 在类的成员方法后面写 = delete 就将该成员方法删除,用户无法调用。智能指针unique_ptr就是将对象的拷贝构造和operator= delete删除了2、auto 自动的 根据右表达式,自动推倒出左边变量的类型。auto it = vec.begin() 根据等号...原创 2018-11-26 14:13:47 · 1585 阅读 · 0 评论 -
C++:13.多重继承(菱形继承),虚继承,虚基类
多重继承:就是一个派生类多个基类,几乎与单继承是一致的。唯一考点:菱形继承结构(B类C类继承A类,D类继承A类。),产生问题,派生类有多份基类的数据。 解决办法:B C都采用虚继承,只有一个虚继承也无法解决该问题。虚继承:厉害了,virtual不仅可以声明虚函数,还可以设定继承方式:虚继承 被采用虚继承的基类 A,称为虚基类此时派生类的大小扩大:会有虚...原创 2018-11-14 19:22:01 · 421 阅读 · 0 评论 -
C++:13.多态、虚函数
多态与虚函数:什么是虚函数:用virtual关键字声明的函数都是虚函数。虚函数存在的唯一目的,就是为了实现多态(动态绑定/运行时绑定)。virtual 关键字只在类定义中的成员函数声明处使用,不能在类外部写成员函数体时使用。所有派生类中具有覆盖关系的同名函数都将自动成为虚函数。(派生类转化为的虚函数,最好也写上virtual,清晰么。)静态成员函数不能是虚函数。再说简单点:有v...原创 2018-11-12 20:06:59 · 305 阅读 · 0 评论 -
C++:12.继承与派生
为了支持代码的复用,继承与派生在C++中就显得十分重要。继承与派生:当定义一个新的类 B 时,如果发现类 B 拥有某个已写好的类 A 的全部特点,此外还有类 A 没有的特点,那么就不必从头重写类 B,而是可以把类 A 作为一个“基类”(也称“父类”),把类 B 写为基类 A 的一个“派生类”(也称“子类”)。这样,就可以说从类 A “派生”出了类 B,也可以说类 B “继承”了类 A。...原创 2018-11-12 16:50:04 · 249 阅读 · 0 评论 -
C++:09.Top K问题
没啥说的:top k大 用小跟堆; top k小 用大根堆优先级队列默认 使用 大根堆 可以求top K小 上代码:求Top K大#include<iostream>#include <queue> priority_queue#include <ctime>#include <functional> greater...原创 2018-11-08 21:03:45 · 207 阅读 · 0 评论 -
C++:11.异常操作
C++ 的异常操作1.、异常涉及的关键字有哪些? throw 抛出异常 。 try 中包含的是可能出现异常的语句,后面可以跟多个catch。 catch 用于捕获异常后面括号中跟的是异常的类型,其中包含的是处理方法。解释一下重抛异常:当catch捕获到一个异常,可以在这个catch中再次throw抛出异常,但这个throw后面可以不跟内容,表示继续抛出原来...原创 2018-11-11 22:42:25 · 396 阅读 · 0 评论 -
C++:10.智能指针
智能指针作用:一般的指针,存在资源泄露的问题。而智能指针一定会保证资源自动释放(会自动调用delete),不用用户参与。为什么会自动调用delete?实际上智能指针也是用类定义的,利用栈上的指针出函数就会自动调用析构函数的特点。所以不能使用堆上的指针,因为出函数不会析构。也不要定义全局的,因为程序结束自己就释放了。头文件:#include <memory>1、带...原创 2018-11-11 17:50:28 · 265 阅读 · 0 评论 -
C++:06.Nginx内存池
先了解一下Nginx:Nginx是一个高性能的HTTP反向代理服务器,接收浏览器请求。其特点是占有内存少,并发能力强,稳定性高。nginx有什么功能?接收http服务,正向反向代理(负载均衡)。正向代理代理客户端,反向代理代理服务器,反向代理也称作负载均衡器http协议本身就是一个短链接,无状态的协议内存池的好处:减少向系统申请和释放内存的时间开销,解决内存频繁分配产...原创 2018-11-05 22:14:13 · 221 阅读 · 0 评论 -
C++:08.泛型算法、仿函数(函数对象)、bind1st 与 bind2nd
置顶推荐转载引用的博文(讲解的很详细):https://www.cnblogs.com/ne-liqian/p/7889631.html 泛型算法:泛型算法是STL库里面定义的一些算法,这些算法可以用一个接口操作各种数据类型,因此成为泛型算法。泛型算法只依赖于迭代器的操作,而不是依赖于容器。头文件:#include <algorithm> 和 ...原创 2018-11-07 20:52:02 · 340 阅读 · 0 评论 -
C++:07.无锁数据结构
看了很多博客,大多讲的很高深,看起来很费劲,能力有限只能简单总结一下。什么是无锁数据结构:先说一下锁是干嘛的,在多线程环境下,由于很多操作不是原子操作,导致多个线程同时做了一个工作,为了防止这种情况的发生,我们通过对执行代码前上锁,让其他进程无法执行该步骤,再执行完后解锁,其他线程才能完成该步骤。再说一下为什么要无锁数据结构:上锁解锁的过程是很消耗资源的,因为要从用户态切到内核态。简单...原创 2018-11-07 17:26:49 · 824 阅读 · 0 评论 -
C++:05.单例模式
单例模式一个类只能被实例化一次,产生一个对象。在类中,要构造一个实例,就需要通过构造函数,所以为了防止在外部调用类的构造函数而构造实例,需要将构造函数的访问权限标记为protected或private;并且需要提供给全局访问点,就需要在类中定义一个static函数,返回在类内部唯一构造的实例。懒汉式:在第一次用到类实例的时候才会去实例化,访问量较小时,采用懒汉式,以时间换空间。并不...原创 2018-11-04 20:47:39 · 181 阅读 · 0 评论 -
C++:04.容器+迭代器+空间配置器
容器:顺序容器/关联容器顺序容器:向量容器vector、双端队列 deque、双向链表 list。元素在容器中的位置同元素的值无关,即容器不是排序的。vector 是可变长的动态数组。#include <vector>。随机访问、内存是连续的、方便排序、二分搜索。可以嵌套形成二维动态数组vector<vector<int> > v(3); //...原创 2018-11-04 17:13:47 · 260 阅读 · 0 评论 -
C++:01.从C到C++:浅拷贝,优化规则,内存分配
new int[20]和new int[20]()有()初始化为该类型的默认值 没有(为随机值) 开辟单个元素可以在()内随意初始化,但开辟数组是()内不能写入数字类的成员方法在类体内定义和在类外定义:1.类外定义的成员方法,在方法名字前面加类类型的作用域2.类外定义的在调用时,有函数的正常开销(函数运行需要再栈上开辟内存);在类体内定义的函数,都被自动处理成inl...原创 2018-10-29 19:02:58 · 385 阅读 · 0 评论 -
C++:03.运算符重载
运算符重载的目的:让对象的运算表现的和内置类型的运算一样。运算符重载函数,返回值一般不会是void,例如:连续的=就无法用void实现,一般用类类型的引用,可以保证连续运算。class CComplex 复数类{public: CComplex(int real = 10, int image = 10):mreal(real), mimage(image) {...原创 2018-10-29 18:34:01 · 151 阅读 · 0 评论 -
C++:02.类与对象:struct于class,拷贝构造,静态成员,常对象,嵌套类,友元,类模板
struct与class:在C语言中struct定义结构体,在C++中struct与class都是定义类,区别在struct默认public,class默认private。还有一种说法:没有成员函数的 struct 还是称作“结构”,结构变量不是对象;有成员函数的 struct 就是类。在.c文件中访问结构体,不可以省略structtypedef struct Node{ int...原创 2018-10-26 17:12:40 · 612 阅读 · 0 评论 -
C++:01.从C到C++:引用,inline,函数重载,全局和局部变量,this,new与malloc
头文件:C++的标准输入输出头文件#include <iostream>。一般还配有using namespace std;表示使用std名命空间。在C++中,声明一个函数时,可以为函数的参数指定默认值。当调用该函数时,如果没有参数,将使用默认值作为参数。面向对象语言:四大特征:封装(在语言上是通过访问限定符体现的:public private) 继承 ...原创 2018-10-24 22:32:13 · 202 阅读 · 0 评论