- 博客(110)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 关于C++有深度的面试题
虚函数是实现多态的关键。对于普通函数,在编译器我们就能够确定该函数的地址,编译器后面的指令就是放该函数中的后续汇编代码。但是多态是运行期动态绑定的,要调用的时候才去找地址(首先找虚表,然后在虚表中找函数地址),然后跳转。关键的是,多态是这个机制,还没有优化的机会。那么,在有上述知识的情况下,回答这个问题就是跳过newoperator和operatornew,将已有的内存空间转型,通过首地址调用想要构造的对象的构造函数,完成初始化。需要说明指针的作用域,而且需要一个对象来调用。................
2022-07-22 23:02:15 2754 2
原创 Linux中常用的的API
标准C库的IO函数通常是可以跨平台的。标准C库会调用Linux操作系统提供的API。文件描述符在进程的内核区的PCB(进程控制块)中的文件描述表中,通过系统调用返回给程序。文件描述符表是一个整型数组,默认大小是1024(也就是最多同时能打开1024个文件),前三个整型元素由系统占用,0表示STDIN,1表示STDOUT,2表示STDERR,每打开一个新文件就会占用一个文件描述符,而且是空闲的最小的一个文件描述符。调用Linux中的open方法就能够返回一个文件描述符。....................
2022-06-27 17:59:55 5220 1
原创 MySQL语句简要
SQL功能DDL:数据定义语言,创建、修改、删除数据库对象(表,视图、索引)DML:数据操纵语言,主要用于查询、添加、修改或者删除存储在数据库中的数据DCL:数据控制语言, 用于控制数据库中特定访问用于的权限,访问类型SQL执行方式交互式SQL:直接执行SQL语句,输出在命令行的嵌入式SQL:嵌入到高级语言中的SQL语句SQL关键词数据定义:CREATE TABLEDROP TABLEALER TABLE //修改表结构CREATE INDEXDROP INDEXCREATE P
2022-05-30 14:04:27 140
原创 target_link_libraries报错
使用CMake编译工程时,出现:NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.CMake的写法:target_link_libraries(target target1 target2)这么写,在链接target的时候,需要用到target1和target2这两个库。但是,如果target1也要用target2这个库,需要额外添加:targe
2022-05-16 19:42:28 1907 1
原创 Linux上的五种IO模型及两种事件处理模式
Linux上的五种IO模型及两种事件处理模式五种IO模型阻塞IO(blocking)非阻塞IO(NIO)IO复用(multiplexing)信号驱动异步IO两种事件处理模式Reactor模式Proactor五种IO模型阻塞IO(blocking)调用者调用了这个函数,等待这个函数返回,期间什么也不做,不停地去检查这个函数有没有返回,必须等这个函数返回才能进行下一个动作。非阻塞IO(NIO)非阻塞等待,每隔一段时间就去检测IO时间是否就绪。没有就绪就可以做其他事。非阻塞IO执行系统调用总是立即返回
2022-05-13 11:45:48 723
原创 cmake简单使用
CMake什么时候用?什么时候用?当一个团队使用不同的语言或者编译器开发一个项目,最重要输出一个可执行文件或者共享库(dll,so等),这个时候就需要使用CMake了。所有的操作都是通过编译CMakeLists.txt来完成的。CMake的目的,是为了编译大型的C/C++/JAVA项目。...
2022-05-07 10:44:06 372
caffe如何制作多通道的lmdb数据集?
2020-06-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人