c++/c
文章平均质量分 89
Karthus_冲冲冲
这个作者很懒,什么都没留下…
展开
-
Leetcode算法题笔记(1)
目录哈希1. 两数之和1.1 解法11.1 解法22. 字母异位词分组2.1 解法12.2 解法23. 最长连续序列3.1 解法小结双指针4. 移动零4.1 解法14.2 解法25. 盛最多水的容器5.1 解法一5.2 解法二6. 三数之和6.1 解法16.2 解法27. 接雨水7.1 解法1解法二小结滑动窗口8. 无重复字符的最长子串8.1 解法19. 找到字符串中所有字母异位词9.1 解法一9.2 解法二子串10 和为k的子数组解法1解法211. 滑动窗口最大值解法一解法二12. 最小覆盖子串解法1数原创 2023-12-07 23:29:41 · 1641 阅读 · 1 评论 -
C++ 11 新特性
当final关键字用于修饰虚函数时,声明该类已经是整个继承体系中最后一个能重写该虚函数的派生类了,后续继承该类的派生类中不允许在重写该虚函数了。原创 2023-11-13 22:20:22 · 808 阅读 · 0 评论 -
Libevent网络库原理及使用方法
Libevent是以个基于C语言编写的轻量级的开源高性能网络库,被广泛使用。Libevent本质上是对已有的系统I/O多路复用技术进行了特殊封装,并统一接口实现I/O,定时器和信号事件Reactor模式,事件驱动,轻量级,性能高;支持I/O多路复用技术,例如select,poll,epoll、kqueue等;跨平台,支持Windows,Linux,BSD 和 Mac Os;支持I/O,定时器和信号等事件,并将它们统一于库内。原创 2023-11-01 18:24:23 · 715 阅读 · 0 评论 -
C++ STL之容器(使用方法)
容器就是数据结构,用来将数据元素按照一定的规则进行排列,不同的容器拥有不同的排列规则,不同的排列规则可以达到不同的数据操作特点。容器只需要提供迭代器 算法只需要拿到迭代器就可以完成容器和算法之间的关联和操作顺序容器:数组(array),动态数组(vector),双向队列(deque),双向链表(list),单向链表(forward_list),字符串(string)原创 2023-10-14 11:38:52 · 408 阅读 · 0 评论 -
C++ STL体系结构
下例分配器为G2.9版本的alloc(目前的__pool_alloc采用16个链表管理内存,每个链表管理同样大小的内存块,0号链表每块内存为8字节,1号链表每块内存为16字节,依次以8的倍数增长。当程序需要用到某一个大小的内存块时,首先看链表中是否有该大小的内存块链表,如果没有则一次性malloc申请一大块,只有一个cookie信息,然后切割为若干个该大小的小内存块,用单向链表连接。因此,malloc每次分得的内存大小总是大于表面上申请的内存大小(申请的内存大小+该块内存的cookie信息)。原创 2023-10-09 22:14:28 · 219 阅读 · 0 评论 -
More Effective C++学习笔记(6)
学习并实践新的C++语言特性、模板特性、异常处理机制、转型、内存分配、标准模板库STL等等。原创 2023-09-09 17:00:01 · 274 阅读 · 0 评论 -
More Effective C++学习笔记(5)
此外,新建一个没有数据成员的间接类B,其构造函数用于调用类A中在map中新增处理函数的静态成员函数,添加新的派生类型时可以在全局构造该间接类,保证在运用不同类型处理函数之前已经在map中加入了对应的处理函数。例如,如何让同一个函数collision(),在接收(SpaceShipe对象,SpaceStation对象)时与接收(SpaceShipe对象,Asteroid对象)行为不同。(3)方法3:直接声明一个类静态成员变量对已构造的对象计数,构造一个对象就+1,析构一个对象就-1,如果无资源就抛出异常。原创 2023-09-09 00:10:21 · 349 阅读 · 0 评论 -
More Effective C++学习笔记(4)
类的相关信息存储在类型为type_info的对象里,能通过使用typeid操作符访问一个类的type_info对象。RTTI耗费的空间是在每个类的vtbl中的占用的额外单元再加上存储type_info对象的空间。这个方法是使用局部缓存,用开销相对不大的内存中查询来替代开销较大的数据库查询。:每个声明了虚函数的对象都带有它,它是一个看不见的数据成员,指向对应类的virtual table。,不过虚基类也会增加一定的成本,类对象中可能有多个虚指针(隐藏指针)。,相当于告诉编译器“我知道我在干啥,没事儿!原创 2023-08-24 16:56:17 · 503 阅读 · 0 评论 -
More Effective C++学习笔记(3)
当通过传值(by-value)方式捕获时,异常对象被拷贝了两次(第一次是异常传递时生成的一个临时对象,第二次是临时对象给catch的形参赋值)。,因为异常里面参数传递都是副本,传引用也不是为引用异常抛出前的原始对象,而是相较于by-value减少一次副本拷贝。,因为函数参数要求传入引用说明想修改引用的变量,结果变量是临时对象,即使修改了也是做无用功,所以编译器不允许;,因为异常catch匹配是顺序匹配(最先匹配的catch),不是最佳匹配。(2)对象做为异常被抛出与做为参数传递给函数相比,原创 2023-08-22 17:17:01 · 298 阅读 · 0 评论 -
Ubuntu20.04下OpenCV 4.5环境配置与代码g++、Cmake编译方法
在Ubuntu20.04下OpenCV 4.5环境配置与代码g++、Cmake编译方法原创 2022-08-10 00:39:02 · 1931 阅读 · 0 评论 -
学生成绩管理系统(C语言)
学生成绩管理系统功能菜单查询学生信息修改学生信息删除学生信息显示学生信息各科成绩各分数段人数统计退出系统异常输入报错学生成绩管理系统代码(含注释)Function.h文件代码:#ifndef _CHANGEINFOR_H#define _CHANGEINFOR_H#include <stdio.h>#include <stdlib.h>#include<string.h>#define ClassNum 3//结构体struct原创 2021-10-17 00:36:08 · 3394 阅读 · 0 评论 -
C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)
如果自定义一个函数,没有任何返回值,而形参是一个指针传入这个函数,在这个函数中,无论如何改变指针所指的方向,函数结束后对外部数据没有变化,唯独通过指针,来间接改变函数以外的变量的值(例如令*p = 一个新的值)。那么此时此刻,在内存中p的地址里的数据已经改变,而函数结束后,该函数对外部做出的贡献就是把原来p的地址里的数据改变了,其他都没变,包括p指针所指的地址。#include<std...原创 2019-08-24 00:42:47 · 685 阅读 · 0 评论 -
C++中的this指针
#include<iostream>class Point{public: int x,y; Point(int a,int b); ~Point(); void movepoint(int x,int y);};void Point::movepoint(int x,int y)//对于point对象调用函数时,就将point对象的地址 ...原创 2019-08-04 17:37:36 · 140 阅读 · 0 评论 -
C++需要输出一个参数的地址时可能达不到预期的效果
C++需要输出一个参数的地址时可能达不到预期的效果——小甲鱼c++课程在c++学习中,在这里插入代码片新的改变#include int main()器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进...原创 2019-07-30 16:21:34 · 144 阅读 · 0 评论