6 阿卡基YUAN

尚未进行身份认证

我要认证

主要方向:嵌入式,图像处理,人工智能

等级
TA的排名 2k+

c++常见面试题30道(有答案)

1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和

2020-08-11 16:29:35

C++三种容器:list、vector和deque的区别

在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担。还有一个就是容器,你会发现要是自己写一个链表、队列,或者是数组的时候,既要花时间还要操心怎么去维护,里面的指针啊,内存够不够用啊,长度问题,有没有可能溢出啊等等一系列的问题等着我们去解决,还是比较头疼的。所以容器的出现解决了这一个问题,它将这些数据结构都封装成了一个类,只需要加上头文件,我们就可以轻松的应用,不用那么复杂,就连指针也被封装成了迭代器,用起来更方便,更人性化,方便了我们的编程,对于程序员

2020-08-10 09:29:26

深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别

C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。。。下面就开始剖析一下这两位的恩怨情仇。。。 1 数组的本质   数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。。 2 指针。   指针也是一种变量,只不过它的内存单元中保存的是一个标识其他位置的地址。。由于地址也是整数,在32位平台下,指针默认为

2020-08-03 14:05:42

QProgressBar

简述:Qt提供了两种显示进度条的方式:一种是QProgressBar,提供了一种横向或者纵向显示进度的控件表示方式,用来描述任务的完成情况;另一种是QProgressDialog,提供了一种针对慢速过程的进度对话框表示方式,用于描述任务完成的进度情况。标准的进度条对话框包括一个进度显示条、一个取消按钮及一个标签。1、 QProgressBar基本用法 m_pConnectProBar = new QProgressBar; m_pConnectProBar->setRan...

2020-07-23 09:43:30

invalid use of incomplete type struct 或者是class的解决办法

最近在移植wifi display的代码,过程中遇到一些问题,有些问题是常见的问题,现列出解决方法自己mark一下,也希望能对别人有所帮助,少走弯路。常见问题一:invalid use of incomplete type出现这个问题,表明编译器不知道所用的struct 或者是class的具体实现,通常出现在如下情况:假设我们有一个class some定义在some.h中,实现在some.cpp中,我们在other.cpp中要用到这个some 的方法,于是我们再other.h中声明可一个class

2020-07-21 17:34:04

VS Code 编译多个C++文件

我们可以通过修改tasks.json文件来对构建过程进行定制化。编译多个C++文件:通过把“${file}”修改为“${workspaceFolder}\\*.cpp”,可以构建当前工作区中的所有C++文件。 "args": [ "-g", "${workspaceFolder}/src/*.cpp", "${workspaceFolder}/FolderA/*.cpp",

2020-07-19 16:10:04

void(*func)(int)

void(*func)(int) 是一个指针 指向一个 返回值为void 参数为int的函数是一个函数指针具体理解http://zhidao.baidu.com/link?url=5GpEN7wPUhDlk_m-3drRHV9bGxv53tj818vtd1GIsyaVfyY1mdsFZfP6_2M_DNAfTQrh0qxMo_wXhK1CjIEPJK

2020-07-19 12:00:01

linux的定时器(timer_create,timer_gettime,timer_delete,SIGEV_SIGNAL)

系统中的一个模块需要频繁的获取系统时间,使用linux中内置的函数开销过大,因为需要的精度不是很高(毫秒级),索性用signal函数配合setitimer实现了个简易的全局时钟。但是后来发现,SIGALRM的中断信号回终止sleep,因为sleep就是用SIGALRM信号量实现的,得另想方案。这个替代方案就是POSIX中内置的定时器:timer_create()(创建)、timer_settime()(初始化)以及 timer_delete(销毁),将自己的时间信号处理函数用timer_create

2020-07-16 16:12:17

linux下多定时器+线程池的实现(经典)

linux只允许单进程拥有一个定时器,因此在linux下的单进程中要使用多个定时器,则需要自己维护管理这个实现允许用户使用多个自定义的定时器,每个自定义的定时器将周期地被触发直到其被删除。实现的主要思路是:i)首先在初始化多定时器(init_mul_timer)时利用setitimer注册一个基本的时间单位(如1s)的定时事件;ii)用户需要set_a_timer注册自定义定时器时,在timer_manage管理结构中记录这个定时器的回调函数和定时周期等参数;iii)当基本的时间单位到期后.

2020-07-16 15:04:15

VS Code 必备插件

1. Bracket Pair Colorizer

2020-07-15 09:27:02

POSIX 消息队列函数(mq_open、mq_getattr、mq_send、mq_receive)示例

概述消息队列是Linux IPC中很常用的一种通信方式,它通常用来在不同进程间发送特定格式的消息数据。消息队列和之前讨论过的管道和FIFO有很大的区别,主要有以下两点:一个进程向消息队列写入消息之前,并不需要某个进程在该队列上等待该消息的到达,而管道和FIFO是相反的,进程向其中写消息时,管道和FIFO必需已经打开来读,那么内核会产生SIGPIPE信号。 IPC的持续性不同。管道和FIFO是随进程的持续性,当管道和FIFO最后一次关闭发生时,仍在管道和FIFO中的数据会被丢弃。消息队列是随内核

2020-07-09 17:29:26

在ubuntu系统中使用命令行更新vs code

一直没有找到ubuntu上自动更新vs code的有效方法。今天在stackoverflow发现了一个帖子说的很好,成功的更新了我的vs code。第一步执行chenrui@chenrui:~/Downloads$ wget https://vscode-update.azurewebsites.net/latest/linux-deb-x64/stable -O /tmp/code_latest_amd64.deb1命令:wget https://vscode-update.azurewebs

2020-07-04 15:34:28

C++类模板(模板类)详解

人们需要编写多个形式和功能都相似的函数,因此有了函数模板来减少重复劳动;人们也需要编写多个形式和功能都相似的类,于是C++引人了类模板的概念,编译器从类模板可以自动生成多个类,避免了程序员的重复劳动。例如,在《C++运算符重载》一章中的《C++实现可变长度的动态数组》一节中,我们实现了一个可变长的整型数组类,可能还需要可变长的 double 数组类,可变长的 CStudent 数组类,等等。如果要把类似于可变长整型数组类的代码都重写一遍,无疑非常麻烦。有了类模板的机制,只需要写一个可变长的数组类模板,..

2020-06-19 11:29:40

注意:ARM处理器中的char 是无符号的

C标准上char可以带符号也可以不带符号,但是具体的平台又有所不同。在大多数的体系结构中char是带符号的,但是在ARM体系中char是不带符号的其取值范围是0 - 255。如下面的代码: 图一在X86平台: 图二在基于ARM的HI3518EV200平台:① 编译 ...

2020-06-18 21:22:38

滑动窗口的最大值

vector<int> maxInWindows(const vector<int>& num, unsigned int size){ vector<int> maxInWindows; if(num.size() >= size && size >= 1) { deque<int> index; for(unsigned int i = 0; i < s.

2020-06-16 11:40:59

Ubuntu VScode 获取超级权限

因为在Ubuntu下,某些硬件设备需要使用root权限才可以操作,所以如果要用vscode调试有硬件的代码时,需要获得root权限在命令行中输入以下命令sudo code --user-data-dir="~/.vscode-root"

2020-06-12 17:16:22

从零开始 Nginx 交叉编译

交叉编译工具链: arm-poky-linux-gnueabi-gcc

2020-05-26 13:59:01

nginx 嵌入式

./configure --help --help print this message --prefix=PATH set installation prefix --sbin-path=PATH set nginx binary pathname --modules-path=PATH set modules path.

2020-05-25 20:35:37

nginx交叉编译

(1)configure【3798】./configure --prefix=/opt/app/nginx --with-zlib=/home/share/nginx/zlib-1.2.11 --with-cc=arm-histbv310-linux-gcc --user=root --group=root --without-http_rewrite_module --without-http_fastcgi_module --conf-path=/opt/app/nginx/conf/nginx.c

2020-05-25 16:58:34

qt 连接 mysql 数据库超时

mysql> show variables like '%timeout';+-----------------------------------+----------+| Variable_name | Value |+-----------------------------------+----------+| connect_timeout | 10 || delayed_insert_.

2020-05-22 09:28:42

查看更多

勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。