- 博客(104)
- 收藏
- 关注
原创 Qt简单的异步操作实现方法
Qt简单的异步操作实现方法方案一在实际应用中,经常会遇到一些耗时操作,导致了主线程的阻塞,这时候可以使用异步操作来避免阻塞。Qt的异步操作需要使用下面的库#include <QtConcurrent>然后将耗时操作丢进下面的函数中即可。QtConcurrent::run([=]() { func();});如果需要判断耗时操作执行完毕与否,可以使用QFuture和QFutureWatcher的结合。QFuture 表示异步计算的结果,QFutureWat..
2021-11-17 16:10:39
7248
原创 MTU 与 MSS
MTU(Maximum Transmission Unit,最大传输单元)MSS(最大报文段长度,Maximum Segment Size)以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500字节和1492字节。链路层的这个特性称为MTU,即最大传输单元。不同类型网络的数帧长度大多数都有一个上限。如果IP层有一个数据报要传,而且数据帧的长度比链路层的MTU还大,那么IP层就需要进行分片(fragmentation),即把数据报分成干片,这样每一片就都小于MTU。UDP .
2021-11-17 15:17:21
582
原创 C 语言高效编程与代码优化
尽管在C代码优化方面有很多的指南,但是关于编译和你使用的编程机器方面的优化知识却很少。通常,为了让你的程序运行的更快,程序的代码量可能需要增加。代码量的增加又可能会对程序的复杂度和可读性带来不利的影响。这对于在手机、PDA等对于内存使用有很多限制的小型设备上编写程序时是不被允许的。因此,在代码优化时,我们的座右铭应该是确保内存使用和执行速度两方面都得到优化。哪里需要使用这些方法?没有这一点,所有的讨论都无从谈起。程序优化最重要的就是找出待优化的地方,也就是找出程序的哪些部分或者哪些模块运行缓慢亦
2021-11-17 15:15:29
439
原创 过程式编程、面向对象编程、函数式编程、泛型编程、元编程
函数式编程与命令式编程回调函数回调函数_百度百科仿函数functor仿函数_百度百科元编程metaprogramming
2021-11-17 14:41:46
327
原创 C++11: 并发(Concurrency)与多线程
C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<atomic> ,<thread>,<mutex>,<condition_variable>和<future>。<atomic>:该头文主要声明了两个类, std::atomic 和 std::atomic_flag,另外还声明了一套 C 风格的原子类型和与 C 兼容的原子操作的函数。 <thread>:该头文件主要声明了 std::thread 类,另
2021-11-17 14:36:23
290
原创 C++11: for(auto&& count : counts); c++14: for(count : counts)
for(auto count : counts)是C++11中的语法,即:Range-based for loop。其中counts应满足:begin(counts), end(counts)是合法的。其等价于for(some_iteratorp = begin(counts); p != end(counts); ++p)且some_type count = *p。另外还可以是for(auto&count : counts), for(auto&&co...
2021-11-17 14:33:36
1072
原创 C++11: 尽量全部使用emplace以提升效率
emplace操作是C++11新特性,新引入的的三个成员emlace_front、empace和emplace_back,允许我们将元素放在容器头部、一个指定的位置和容器尾部。这些操作构造而不是拷贝元素到容器中,是最高效接口,尽量这些操作替换对应的push_front、insert 和push_back。两者的区别当调用insert时,我们将元素类型的对象传递给insert,元素的对象被拷贝到容器中,而当我们使用emplace时,我们将参数传递元素类型的构造函数,emplace使用这些参数在容器管..
2021-11-17 12:50:46
952
原创 C++11: 尽量使用std::array来代替数组
std::array是具有固定大小的数组,使用栈(静态内存分配)。支持快速随机访问,效率与数组相同。不能添加或删除元素。需要包含头的头文件文件#include<array>定义时必须指定array的大小,因为大小是模板参数之一,不可忽略; 定义时不能使用变量指定大小; 可通过array构造新的array,可以使用{}构造; 不可使用数组构造。array<int,5>myarray={1,2,3,4,5};array<int,5>othera...
2021-11-15 14:59:22
3011
原创 GIT子模块小总结
详细帖子请看:https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97无奈里面东西太多,我稍微总结下常用的:添加子库:git submodule add 命令后面加上想要跟踪的项目的相对或绝对 URL 来添加新的子模块,这个操作会在项目主目录下产生一个隐藏的.gitmodules文件,这个文件里面就包含子模块的名称、本项目下的路径、URL路径、分支的信息。检出带子模块库:有两种方式:
2021-11-10 15:56:53
491
原创 C++学习指南
C++学习指南1. Scott Meyers的《Effective STL》,Effective系列(如《Effective C++》)基本上是C++圣经了,这一本是其中专门讲STL的,看了可以少踩很多坑。其中某个条款要解决的问题哪怕你目前很难懂,照做都是好的。2. 侯捷老师的《STL源码剖析》,真正要想掌握一个东西,只能看源码,所谓源码面前,了无秘密。STL里最精妙的容器和算法还有traits,大师给你娓娓道来。虽然SGI STL有点老了,但是思想是一脉相承的。通过大师给你提纲挈领,你将学会怎么入
2021-11-09 14:40:14
622
原创 序列化Serialization
1、什么是序列化在面向对象编程中,一种很常见的需求是,需要保存对象,并在下次使用时可以顺利还原该对象。2、为什么叫序列化由于保存对象的过程,是把对象保存为一连串字节流(byte stream),而英文Serialization的意思“序列化”,所以序列化形象的表述了这个过程。关于流(stream)、字节流(byte stream)和字符流(character stream)、输入流和输出流:https://www.cnblogs.com/progor/p/9357676.htmlht
2020-08-03 16:14:54
349
原创 C++类型反射与QT实现
反射的概念:指程序在运行时,访问、检测和修改它本身状态或行为的一种能力。wikipedia简单的来说,就是一种自描述和自控制的能力。如果联想到镜子,就可以很好的理解,你能通过镜子看到自己,包括自己的动作,自己的外表。唯一不同的地方是,计算机语言的反射能力还包含对看到的自己采取措施。面向对象模型中的一个概念,反映了描述事物的对象的一个抽象特性。也可以描述为自省(Reflection)。反射的作用在计算机编程语言中,反射机制可以用来:获取类型的信息,包括属性、方法 动态调用方法
2020-08-03 16:14:32
2002
转载 achieve multilayer design with QML
You can achieve multilayer design usinglayerattached property as follow.Also you does not any limitation and you can use any qml item, use anyQtQuick.Controlsand style it as usual :)Image { id: bk source: "http://l7.alamy.com/zoo...
2020-06-09 20:24:44
198
原创 qt3DScene选择对象功能的实现
用C++实现的qt3DScene选点功能,QPickEvent.localIntersection#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMouseEvent>#include <QTimer>#include <QCamera>#include <QCuboidMesh>#include <QCylinderMesh>#include &...
2020-06-09 18:17:14
1424
原创 【问题解决】编译VTK时CMAKE中找不到Qt5X11Extras
编译VTK时,use.system.qt5sudo apt install qt5-default出现以下错误CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package): Could not find a package configuration file prov...
2020-02-10 17:10:10
8902
8
原创 QPixmap, QByteArray, QString互相转换
QString filename = QDir::homePath() + "/Desktop/TOF.png"; QImage* img = new QImage; if(!(img->load(filename))) //加载图像 { QMessageBox::information(this, tr("打开图像失败"), tr("打开图像失败!")); ...
2019-12-16 21:33:00
2696
原创 qt5和pyqt中如何设置控件在窗口上的位置
<widget class="QToolBar" name="SettingToolbar"> <property name="windowTitle"> <string>toolBar</string> </property> <attribute name="toolBarArea">...
2019-12-05 16:02:41
3383
转载 Python 多线程 Condition 的使用
Python 多线程 Condition 的使用ConditionCondition(条件变量)通常与一个锁关联。需要在多个Contidion中共享一个锁时,可以传递一个Lock/RLock实例给构造方法,否则它将自己生成一个RLock实例。可以认为,除了Lock带有的锁定池外,Condition还包含一个等待池,池中的线程处于状态图中的等待阻塞状态,直到另一个线程调用notify()...
2019-10-24 20:26:30
1268
原创 通信英语词汇用法与案例
为什么要研究用词问题技术英语用词原则1、简单原则2、动词优先简单原则奥卡姆剃刀原理:如非必要,勿增实体。如果都说的通,简单就是最好的。1. 选词准确、易读易懂,并且不会引起歧义。2. 可替代的情况下,尽量使用常用词,避免生僻词。3. 避免滥用大词,要尽量选用词义准确的小词。大词(Big word): a difficult word used ...
2019-08-22 16:43:38
542
原创 【经典面试题】C++实现String类
String的默认构造函数,构造函数,拷贝构造函数,析构函数,赋值构造函数#ifndef STRING_H_#define STRING_H_class String{ public: String(); String(const char *str); String(const String &rhs); ...
2019-08-21 10:28:25
327
转载 Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc的区别【转】
我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。 那么,在内核空间中如何申请内存呢?一般我们会用到 kmalloc()、kzalloc()、vmalloc() 等,下面我们介绍一下这些函数的...
2019-08-12 23:52:34
294
原创 AVL tree
/* avlLib.h - AVL trees library header file *//* Copyright 1999 Wind River Systems, Inc. *//*modification history--------------------01e,10feb00,abd added avlMinimumGet and avlMaximumGet01d,1...
2019-08-12 18:29:56
293
原创 内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区
内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放...
2019-08-02 11:28:35
288
原创 2019无线技术(软件/安全/测试)方向教练认证初选编程题(补充说明)
请提供一个通用json列表的过滤器,对于任意给出的合法的json列表,通过给定的过滤条件表达式filterExpr,筛选出符合条件的json子列表。其中,filterExpr为字符串,包括一个或多个根据simpleFilterExpr格式化的字符串,使用&字符连接,规格如下:filterExpr := <simpleFilterExpr>[&<simpleF...
2019-07-31 11:33:40
251
原创 无线院2018下半年技术教练认证-专业能力测评初试
技术教练认证专业能力测评试题见下附件,请您仔细阅读,按要求完成答题。【测评试题】假如你在一家银行工作,银行最近购买了一台智能机器,用来帮助阅读分行寄来的信件和传真。机器扫描纸质文档,并产生一个文本文件,该文本文件由如下若干条目组成:``` _ _ _ _ _ _ _ | _| _||_||_ |_ ||_||_| ||_ _| | _||...
2019-07-31 11:19:49
584
原创 无线院2018上半年技术教练认证-专业能力测评
提交代码到:挑战代码提交地址以8位工号作为代码库名称(注:2018(上)认证已经完成,题目仅供大家练习、挑战)初赛题目(线下编码):实现指定规则的字符串大小比较功能:两个字符串(字符串1、字符串2)的大小比较,字符串只可能含有如下字符字母:a~z|A~Z 数字:0~9 转义符:\比较规则如下:从左到右分离单纯的子字母串(均为字母)和子数字串(均为数字)进行比较; 如果...
2019-07-31 11:09:24
227
原创 2017年技术教练认证流程回顾
2017年技术教练认证流程回顾[TOC]本文档记录2017年的技术教练认证的流程,其中很多内容是事后回忆的,因此题目有些出入。教练认证每年的流程(套路)都不大一样,因此只能起一定的参考作用,希望对后来人起一定的指导作用,能够做到有的放矢。第一轮第一轮是海选,先报名参加,然后按照通知的截止时间之前,完成给定的题目。这关报名人数很多,因此淘汰率也很高。通过不了这关,以后就没认证...
2019-07-31 11:04:32
330
原创 [剑指offer]数组中逆序对的个数
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007看到这个题目,我们的第一反应是顺序扫描整个数组。每扫描到一个数组的时候,逐个比较该数字和它后面的数字的大小。如果后面的数字比它小,则这两个数字就组成了一个逆序对。假设数组中含有n个数字。由于每个...
2019-07-30 18:06:14
197
原创 [剑指offer]丑数
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution {public: int GetUglyNumber_Solution(int index) { if(index<=0)return 0; ...
2019-07-30 17:32:35
100
原创 agora面经
指针和引用的应用场景linux除了malloc还有那些分配内存的方式calloc, realloc, allocakmalloc, vmallocmalloc和free的区别tcp和udp的区别1)连接方面区别TCP面向连接(如打电话要先拨号建立连接)。UDP是无连接的,即发送数据之前不需要建立连接。2)安全方面的区别TCP提供可靠的服务,通过TCP连接传送的数据,...
2019-07-26 22:38:34
603
转载 互联网后台开发需要掌握什么?
互联网后台开发需要掌握什么?本文内容仅针对互联网后台开发从业人员。互联网后台开发,通常意味着分布式、大数据,涉及到高性能、系统容灾、数据容灾、高可用性、数据一致性等。自从2008年Hadoop在华夏大地蓬勃发展,开源如火山爆发在业界百花齐放,茁壮成长。国内的BAT、华为和小米等也大量的参与了国际开源,甚至开源了大量优秀的久经考验的内部系统,如阿里的Tair、druid、fastjso...
2019-07-25 15:46:30
365
原创 字节跳动面经
C++语言本身有什么优点和缺点C++智能指针了解么除了malloc还有什么内存分配的方法堆栈的核心本质设计一个内存分配和回收系统IO多路复用多线程资源冲突的一些解决方法,mutex, samphore, event多线程信号量系统的设计,采用消息队列的方式tcp udp的特点tcp是长连接还是短连接三次握手和四次挥手当socket server tcp连...
2019-07-25 15:27:31
204
原创 [剑指offer]数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。/*考虑过程: 首先我们考虑这个问题的一个简单版本:一个数组里除了一个数字之外,其他的数字都出现了两次。 请写程序找出这个只出现一次的数字。 这个题目的突破口在哪里?题目为什么要强调有一个数字出现一次,其他的出现两次?我们想到了异或运算的性质: 任何一个数字异或它自己都等于0 。也就是说...
2019-07-25 10:42:44
78
原创 [剑指offer]平衡二叉树
输入一棵二叉树,判断该二叉树是否是平衡二叉树。class Solution {public://后序遍历 bool IsBalanced_Solution(TreeNode* p) { return getDepth(p) != -1; } int getDepth(TreeNode* root) { if (ro...
2019-07-25 10:36:31
83
原创 [剑指offer]二叉树的深度
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) ...
2019-07-25 10:15:46
72
原创 [剑指offer]数字在排序数组中出现的次数
统计一个数字在排序数组中出现的次数。class Solution {public: int GetNumberOfK(vector<int> v ,int k) { int len=v.size(),c=0; if(len==0)return 0; int first=binarySearchFirst(v,k...
2019-07-25 09:58:30
83
原创 [剑指offer]丑数
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution { const int INF=999999999;public: int GetUglyNumber_Solution(int index) { ...
2019-07-24 23:04:11
80
原创 [剑指offer]把数组排成最小数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。/*对vector容器内的数据进行排序,按照 将a和b转为string后 若 a+b<b+a a排在在前 的规则排序, 如 2 21 因为 212 < 221 所以 排序后为 21 2 ...
2019-07-24 22:45:52
122
原创 [剑指offer]连续子数组最大和
HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会...
2019-07-24 22:21:06
87
原创 美光面经
笔试有写程序的,也有给一段程序让你写运行结果的题目(这个题目是保密的)0、有写程序和给一段程序写运行结果的C语言基础题(可能不止这一道)eg.1for (i=0; i<=10; i++){ count=i++; Printf(“%d”, count);}eg.2int a=5,b=7,c=0;c=(a++)+(++b);Printf(“a=...
2019-07-20 18:22:22
2239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人