8 nk_wang

尚未进行身份认证

2013年毕业于西安石油大学应用物理学专业,精通C/C++编程语言,MFC、Qt图形界面框架;熟悉设计模式、网络编程、数据库、Windows、Linux环境下的软件研发。

等级
TA的排名 13w+

Python学习之迭代器类型

迭代器作为Python中比较常用德数据类型,Python的官方说明文档给出了迭代器类型的详细说明:本人使用的是Python的3.7.x版本.原文以及解释Python supports a concept of iteration over containers. This is implemented using two distinct methods; these are used to...

2019-01-07 23:27:20

Python学习之sqlite3简单应用

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。在Python中,SQLite作为一个内嵌模块使用,如何使用SQLite模块呢??创建数据库为了使用sqlite3数据库模块,首先得创建一个Connection对象代表数据库,下面创建一个数据库examp...

2019-01-05 12:28:23

Qt绘图之刻度环绕

      在Qt绘图中,经常需要绘制一些仪表的刻度盘,我们知道,仪表刻度上的数据基本呈现环绕模式,那么如何在Qt中实现这种绘图效果呢???      在Qt 绘图类QPainter中,提供了rotate()和translate()方法,在绘图过程中通过这两个方法的配置使用,完全可以实现刻度的环绕。下面是本人写的一个例子,比较简单。头文件widget.h#ifndef WIDGET_H...

2018-06-03 18:30:39

扎克伯格是如何让员工学会高效工作的?

简述Facebook 的社交帝国如何建立的?当所有人都聚焦其技术创新、营销策略、市场开拓等因素时,却不知其实更令人感叹的是其员工的工作习惯和态度。全球最年轻亿万富豪宝座的 Facebook 创始人马克·扎克伯格,为了提升员工的工作效率,亲自做了这 26 张 PPT。有人说这是「 Facebook 内部培训 PPT」,也有人说这是一个叫做 Étienne Garbugli 的产品设计与咨询顾问做的一...

2018-04-14 14:28:00

文件拖拽功能窗口实现

今天在使用迅雷软件播放影片时,觉得这个拖拽播放的功能还不错,想着自己能否实现一个具备文件拖拽功能的窗口呢,查看了下MSDN,原来窗口接受文件需要处理WM_DROPFILES消息。WM_DROPFILES消息 MSDN中消息的语法:PostMessage( (HWND) hWndControl, // handle to destination control

2017-07-09 18:59:44

C++智能指针详解

1. 简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,造成内存泄漏。 使用C++智能指针可以有效的解决这类问题,本文中主要介绍std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::

2016-05-28 11:38:48

大文件内存映射问题

最近一段时间接到朋友的关于大文件分解的一个问题,文件大小不确定,几百M到几个G,对于这样的问题,采用内存映射处理是最为高效的手段需求是这样的,文件包含文件头:136个字节,后面记录的是一条一条的数据包,数据包结构如下:数据包头:4个字节;文件序号:4个字节,数据包大小;要求分解为100M大小左右的文件,根据文件结构代码实现如下://FileInfoDef.h#ifndef __INCLUDE_FI

2016-05-27 12:55:37

进程间通信之共享内存(Share Memory)

为了实现多个进程之间的通信,我们可以用系统页面文件来最为共享内存文件。 1.首先我们创建第一个进程,用系统函数CreateFileMapping创建共享内存文件,用函数MapViewOfFile映射共享内存文件到进程,具体操作见代码:#include <Windows.h>#include <conio.h>#include <tchar.h>#include <iostream>using

2016-05-27 11:38:42

boost库实现Base64编解码

 Base64介绍Base64是一种基于64个可打印字符来表示二进制数据的表示方法,从本质上看Base64编码就是将三字节转换为四字节,如果数据的长度不是3的整数倍,就要在后面补0再计算,每补2个0就再Base64串后加上1个‘=’。boost库Base64boost库对Base64编解码进行很了很好的封装,以下代码用boost库实现Base64编解码//boost库引用文件...

2015-12-25 23:32:35

宏与内联函数的区别

总结目的:本人曾经一度选择放弃开发岗位,然后仅仅三个月之后又觉得自己的选择是错误的,还是应该继续自己比较擅长的开发,然而一次面试却让我发现,很小的知识点已经遗忘。(1)、宏只做简单的字符串替换,函数是参数传递,所以必然有参数类型检查(支持各种类型,而不是只有字符串)。(2)、宏不经计算而直接替换参数,函数调用则是将参数表达式求值再传递给形参。(3)、宏在编译前进行,即先替换再编

2015-12-05 16:43:38

STL容器区别vector,list

最近在面试过程中面试官问道我一个问题,vector和list分别在什么样的场景下使用,这样一问,问的我一头雾水,回来之后翻了翻网页,大概总结下这两种容器的使用场景,也算是给自己一个提醒,做技术时刻得总结总结,而不是临时抱佛脚。1.vectorvector就是动态数组.它也是在堆中分配内存,元素连续存放,有保留内存,如果减少大小后,内存也不会释放.如果新值>当前大小时才会再分配内存. 它拥有一

2015-08-05 21:19:03

C#LINQ介绍

前言最近在自学C#的过程中,突然发现LINQ(Language Integrated Query)这个名词,自己看了看MSDN,就决定摘录其中个人认为比较用知识点,供大家学习参考。首先看看微软MSDN的解释:A query is an expression that retrieves data from a data source. Queries are usually expressed

2015-03-29 15:35:11

C/C++ 笔试、面试题目汇总(续)

一.找错题试题1:void test1(){ charstring[10]; char* str1 ="0123456789"; strcpy( string, str1 );} 试题2:void test2(){ charstring[10],str1[10]; int i; for(i=0; i10; i++)

2015-03-22 11:11:29

C/C++ 笔试、面试题目汇总

C++的基础知识,笔试面试必备 1.求下面函数的返回值( 微软)int func(x) { int countx =0; while(x) { countx ++; x = x&(x-1); } return countx; }假定x = 9999。 答案:8思路:将x转化为2进制,看含有的1的个数。

2015-03-22 11:07:17

C++虚函数及虚函数表解析

一、背景知识(一些基本概念)虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。C++  “虚函数”的存在是为了实现面向对象中的“多态”,即父类类别的指针(或者引用)指向其子类的实例,然后通过

2015-03-15 20:34:16

有点意思的C/C++问题及解答:21-25

问题21:判断C编译器是否支持嵌套注释。       解法:嵌套注释是指在/* */ 中出现/* ... */,定义这个式子: /*/*/0*/**/1  。如果编译器不支持嵌套注释,那么这个式子为0*1。如果支持嵌套注释,那么这个式子为1。摘自《C陷阱与缺陷》。       问题22:判断机器的大小端。       解法:用联合,先将其中的word赋值为0x1234567

2015-03-04 21:56:02

有点意思的C/C++问题及解答:16-20

问题16:在C++中定一个不能被继承的类       解法:容易想到的就是将这个类的构造函数和析构函数都设为私有的。这样继承的类就无法调用父类的构造函数和析构函数,编译时就会报错。但是不能被继承的类如何产生对象呢?可以利用静态函数,它与类的对象无关,可以直接通过类的作用域直接调用。[cpp] view plaincopyprint?c

2015-03-04 21:54:45

有点意思的C/C++问题及解答:6-10

问题 6:非C++内建型别A 和B,在哪几种情况下B 能隐式转化为A? (1)class A { ...... };  class B : public A { ……} ;  // B 公有继承自A,可以是间接继承的(2)class A { ...... }; class B {  operator A() { return A::A(); } ......};  // B 实现了

2015-03-04 21:53:25

有点意思的C/C++问题及解答:11-15

问题11:下面这个函数希望完成什么任务?[cpp] view plaincopyprint?int func(int x)   {       int countx = 0;       while(x)       {           countx ++;           x = x&(x-1);    

2015-03-04 21:52:39

有点意思的C/C++问题及解答:1-5

问题1 :写一个交换两个数的宏方法1:可以用异或运算来做,如果是浮点数,这个方法就不行了[cpp] view plaincopyprint?#define _swap(a,b) { a=a^b; b=a^b;a=a^b; }  方法2:用加减法来做,可能会溢出[cpp] view pla

2015-03-04 21:50:53

查看更多

勋章 我的勋章
    暂无奖章