- 博客(131)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++标准库(第2版)读书笔记
持续更新ingC++11新特性Template表达式内的空格vector<vector> > vec; // Ok in each C++ versionvector<vector>> vec; // Ok since C++11nullptr_tC++11允许使用nullptr取代0或NULL,用来表示一个pointer,指向no value。它时一个新关键字 ,拥有类型为std::nullptr_t, 它被自动转换为各种pointer,但
2021-01-07 09:23:21
202
原创 Linux 查看动态库和静态库的导出函数
在Linux下开发,使用及制作.so 和 .a 库文件时,经常要确认接口是否已成功导出,现给大家分享一点经验:命令nm [option(s)] [file(s)][haidongl@sj-haidongl ~]$ nm -hUsage: nm [option(s)] [file(s)] List symbols in [file(s)] (a.out by default). The options are: -a, --debug-syms Display deb
2021-11-03 17:01:32
1920
转载 UML类图
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:带三角箭头的实线,箭头指向父类2.实现(Realization)【实现关系】:是一种类与接口的关系..
2021-10-13 16:09:27
488
原创 error C2039: ‘tr1‘: is not a member of ‘std‘
最近在VS2019的工程中集成gtest,发现报错如下:error C2039: 'tr1': is not a member of 'std'error C3083: 'tr1': the symbol to the left of a '::' must be a type原因:可能是C++11新特性导致解决方案:在CmakeLists文件中预定义_HAS_TR1_NAMESPACE 宏,通知编译器支持C++11add_compile_definitions(_..
2021-09-29 17:07:03
1514
原创 Cmake 设置 Debug / Release 版本
通过-DCMAKE_BUILD_TYPE= Debug or Release 控制Linux:mkdir Release cd Release cmake -DCMAKE_BUILD_TYPE=Release .. make mkdir Debug cd Debug cmake -DCMAKE_BUILD_TYPE=Debug .. make Windows:cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE.
2021-09-29 16:59:37
952
原创 Linux 系统如何查看文件是32位还是64位?
在日常工作中,经常需要查看文件是32位还64位,下面一个命令可以查看:file filename
2021-09-29 16:53:37
2822
原创 C++.include ““与include <>
include是把目标文件拷贝过来,当作文本文件解析。include ""查找路径:当前目录->系统目录 如果是#include <*.h>,那么编译器是先从自带的函数库中寻找声明的头文件,例如iostream、math、stdio这种都是写成include <iostream>;include <>查找路径:系统目录->当前目录 如果是#include "*.h",那么编译器是先从自定义的路径中寻找,如果找不到则再去自带的函数...
2021-07-06 15:24:57
275
原创 char, unsigned char, signed char 区别
它们都是C++中字符的定义。char如果用于文本,则使用未加限定的char, 是类似于'a','0'的类型, 或是组成C字符串"abcde"的类型。它也可以是一个值,但是是当做无符号还是有符号数没有指定。signed char范围至少为 [-127 ~ 127] 。 (一般范围是 -128 到 127)unsigned char范围至少为 [0 ~ 255]说“至少”是因为C++标准只指定了对应每一种数据类型值的最小覆盖范围。如果你真的要表示小的整数,最好使...
2021-05-08 17:58:47
993
原创 size_t 定义及大小
C:size_t一般用来表示一种计数,比如有多少东西被拷贝等。sizeof操作符的结果类型是size_t,数组大小也是size_t类型。它在头文件中typedef为unsigned int类型,即typedef unsignedint size_t 该类型保证能容纳实现所建立的最大对象的字节大小。strncat,strncmp,strncpy等都用到了它。size_t 是为了方便系统之间的移植而定义的,在32位系统上定义为unsigned int,在64位系统上定义为un...
2021-05-08 17:43:51
3495
原创 C++ 设置控制台字体主题,颜色和背景颜色
通常控制台都是白字黑底的,千篇一律不免单调。适当的在控制台中加入一些彩色可以让人耳目一新,本文介绍如何使用系统API接口去修改控制台的文字和背景颜色。主要用到的函数有三个:// 设置主题SetConsoleTitle// 获取设备句柄GetStdHandle// 设置属性SetConsoleTextAttribute设置主题#include <iostream>#include <windows.h>using namespace std.
2021-04-08 17:17:59
9810
4
原创 vector的创建和初始化
C++的初始化方法很多,各种初始化方法有一些不同。(1): 默认初始化vector为空, size为0,表明容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空间。这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。vector<int> vec;(2): 拷贝初始化两种方式等价 ,vec2 初始化为 vec 的拷贝,vec必须与vec2 类型相同,也就是同为int的vector类型,vec2将具有和vec相同的容量和元素vector&
2021-01-13 09:18:20
1505
原创 C++产生随机整数和随机浮点数
头文件#include <cstdlib>#include <ctime>在产生随机数前,需要设置"seed"srand((unsigned)(time(0)));随机整数通用公式 a + rand() % n[a,b) 的随机整数(rand() % (b-a))+ a[a,b]的随机整数(rand() % (b-a+1))+ a;(a,b) 的随机整数(rand() % (b-a))+ a + 1;随机浮点数[0
2021-01-12 09:00:04
2482
原创 复杂度与Big-O标记
复杂度种类标记意义常量O(1)运行时间与元素个数无关对数O(log(n))运行时间随元素个数的增加呈对数增长线性O(n)运行时间随元素个数的增加呈线性增长n-log-nO(nlog(n))运行时间随元素个数的增加呈“线性与对数乘积”增长平方O(n^2)运行时间随元素个数的增加呈平方增长五种典型的复杂度Big-O标记种类标记1251050100100010000常量O(1)11111
2021-01-07 09:48:06
215
2
原创 MarkDown基本语法
MarkDown基本语法功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入功能快捷键撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Comma
2020-12-30 18:44:23
152
原创 Markdown 数学公式
行内与独行行内公式:将公式插入到本行内,符号:$公式内容$,如:$xyz$ 独行公式:将公式插入到新的一行内,并且居中,符号:$$公式内容$$,如:$$xyz$$上标、下标与组合上标符号,符号:^,如:$x^4$ 下标符号,符号:_,如:$x_1$ 组合符号,符号:{},如:${16}_{8}O{2+}_{2}$汉字、字体与格式汉字形式,符号:\mbox{},如:$V_{\mbox{初始}}$ 字体控制,符号:\displaystyle,如:$\displaystyle \frac{
2020-12-30 18:36:04
950
原创 解决 Qt5 报错 This application failed to start because it could not find or load the Qt platform plugin
在用QT开发完,准备发布时,经常碰到报错:This application failed to start because it could not find or load the Qt platform plugin。这是因为程序包里缺少一些运行库,QT为了简化生成发布版本,特别提供了工具 "windeplayqt.exe"。这个工具在目录"xxx\Qt5.9.1\5.9.1\msvc2015_64\bin"。通过以下步骤可以解决此类错误。1 打开控制台窗口2 设置搜索路径以便系统可以搜索
2020-11-23 16:02:41
2054
2
原创 QTableWidget用法
设置列数 列宽ui->tableWidget->setColumnCount(4); //设置列数ui->tableWidget->setColumnWidth(0, 90); //0 设置列宽ui->tableWidget->setColumnWidth(1, 190); //1 设置列宽ui->tableWidget->setColumnWidth(2, 95); //2 设置列宽ui->tableWidget->setCo...
2020-10-15 14:32:48
288
原创 HOOPS 3D 模块介绍
Hoops:HOOPS是一个模块儿化的开发套件,各个模块功能专一,模块之间的互操作也处理得不错。模块儿化是任何一个大型的开发工具的必由之路,好比国家大了必须划分成多个省一样。在我这个系列文章中将会涉及到的模块主要有:3dGS,MVO,GUI,Stream还有ModelingKernelBridge。HOOPS/3DGS:3dGS是HOOPS最为核心的模块,其负责HOOPS的绘图及数据管理任务。它屏蔽了不同底层绘图库(OpenGL、DirectX等)接口的不同,向上提供一套统一的、更...
2020-09-29 09:01:45
2108
原创 《贝佐斯的数字帝国》读书笔记
最近有幸读到一本好书:《贝佐斯的数字帝国》,收获还是颇丰,特此记录一些要点。 亚马逊核心管理思想及体系 模块1 业务模式:痴迷客户,拓展边界 不少企业号称客户第一、以客户为中心,但落到实处的残酷真相是:以老板为中心、以对手为中心,或者以股价涨跌为中心。说是要看长远,但...
2020-08-20 17:12:34
9400
原创 最短路径--狄克斯特拉(Dijkstra)算法
最短路径从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径Dijkstra算法算法来源Dijkstra算法是由一个叫Dijkstra的荷兰人发明的,故称此算法为Dijkstra算法算法思想将图上的初始点看作一个集合S,其它点看作另一个集合 根据初始点,求出其它点到初始点的距离d[i] (若相邻,则d[i]为边权值;若不相邻,则d[i]为无限大) 选取最小的d[i](记为d[x]),并将此d[i]边对应的点(记为x)加入集合S(实际上,..
2020-07-20 17:05:58
2470
原创 SecureFx连接Linux系统乱码
最近用SecureFx连接Ubuntu时,出现乱码,经过一番查询资料和实验最终得以解决,希望对大家有所帮助。1、在选项中设置字符编码为UTF-8Options --SessionOptions -- Teminal -- Appearance2、在选项的全局选项中找到Securefx的配置文件Options --Global Options -- General-- Configuraltion PathsC:\Users\lihd\AppData\Roa...
2020-06-03 17:00:03
421
1
原创 c语言标准库
c语言标准库标准输入输出(stdio.h)文件操作(stdio.h)字符操作(ctype.h)字符串操作(string,h)数学函数(math.h)资源管理(stdlib.h)格式转换(stdlib.h)时间/日期(time.h)断言(assert.h)各种类型的常数(limits.h & float.h)变长参数(stdarg.h)非局部跳转(setjmp.h)...
2020-05-06 11:03:56
197
1
原创 解决:1045: Unknown column 'xxx.id' in 'field list'
在django连接数据库开发时,网页报错:1045: Unknown column 'a.userId' in 'field list'解决方法有:查看表名是否写错 查看字段名是否写错 以上都没错,Model里是否没指定主键,此时Django会自动生成主键,后续引用可能报错...
2020-04-25 23:10:28
13297
1
原创 django 自定义数据库表名
在利用django连接数据库开发时,django 自动生成的表名是 app 名和 model 名的组合,但这往往不是我们想要的,自定义 db_table 属性就行了class Student(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=...
2020-04-25 22:55:44
1926
原创 Django 配置 mysql 数据库
Django配置数据库有两种方法方法一:直接在settings.py文件中添加数据库配置信息DATABASES = { # 方法一 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'mysite', # 数据...
2020-04-25 22:44:20
786
1
原创 Python 安装库 is not a supported wheel on this platform解决办法
最近在windows上部署djano,安装mod_wsgi模块时报错:is not a supported wheel on this platform,经过搜索资料最终得以解决,总结如下:可能的原因1:安装的不是对应python版本的库,下载的库名中cp37代表python3.7,其它同理。 可能的原因2:这个是我遇到的情况(下载的是对应版本的库,然后仍然提示不支持当前平台)我下载到的...
2020-04-22 22:30:32
4993
7
原创 module 'pip' has no attribute 'pep425tags'
AMD64import pip._internalprint(pip._internal.pep425tags.get_supported())WIN32import pipprint(pip.pep425tags.get_supported())
2020-04-22 21:35:49
218
原创 动态链接库DLL的加载
《程序员的自我修养--链接、装载与库》学习笔记动态链接(DLL)DLL,即动态链接库(Dynamic Link Library),在实际应用开发过程中,为了以后对已经开发好的软件程序进行更好的维护和管理,程序的模块化是一个很好的管理方法,程序员大都喜欢把某一模块的功能做成dll文件,然后导入到工程目录中,再进行加载即可调用dll里面的函数,大大的减少了代码的阅读量,节省大量的宝贵时间,如果...
2020-03-10 17:16:50
300
1
转载 浅析静态链接和动态链接
转载自:https://www.cnblogs.com/skynet/p/3372855.html什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。所谓...
2020-03-10 16:00:20
388
原创 揭秘编译和链接--C++
《程序员的自我修养--链接、装载与库》学习笔记对应平常的应用开发,我们很少关注编译和链接过程,这些事都被IDE替我们完成了。那我们写的代码,是怎么组织起来的?最后是怎么运行起来的呢?今天跟大家一起来学习下。代码编写完成到最后变成可执行的exe,中间需要四个步骤:预编译、编译、汇编和链接。 编译和链接图示: ...
2020-03-10 15:27:52
201
1
转载 N条线段求交的扫描线算法
转载自:http://johnhany.net/2013/11/sweep-algorithm-for-segments-intersection/N条线段求交的扫描线算法 在对图进行计算时,很常用的一个操作就是求若干条线段的交点,比如对图的叠加、截窗,需要频繁地计算线段交点,如果求交算法效率很低,上层的算法再优秀也表现不出好的性能。 先考虑一个很简单...
2020-03-06 10:07:55
4067
1
原创 VS 2010/2015 旗舰版 启动报错 Key Required
VS2010旗舰版启动时,报以下错误:问题原因:番茄助手(VAssistX )导致解决方案:工具->扩展管理器->找到番茄助手卸载,重启vs即可
2020-03-05 16:36:39
1042
原创 char与wchar_t相互转换
1、wchar类型初始化wchar_t* wc = L"这是 wchar 测试";2、wchar_t* 转 char*char * wchar2char(const wchar_t* wchar ){ char * m_char; int len= WideCharToMultiByte( CP_ACP ,0,wchar ,wcslen( wchar ),...
2020-02-26 21:10:55
2225
原创 C++ 读写 mysql 数据库中文乱码
最近在读写mysql数据库时,碰到乱码的问题,研究一番发现vs项目下,默认编码Unicode,但我的数据库默认utf8,所以读取数据的时候中文乱码。最终通过以下方法解决:1、写入数据库时设置编码为gbkmysql_query(connect, "set names gbk")2、读取数据库时设置编码为utf8mysql_query(connect, "set names utf...
2020-02-26 20:31:53
4505
4
原创 QString 和int,double等的转换
1、数值转QString整形的转换格式都是一样的,第一个参数是十进制要转换的整数,第二个参数指定以什么进制来转换,默认是十进制。第二个参数base必须在[2,36]之间,当base为10以外的值时,第一个参数n将被视为无符号整数。QString number(long n, int base = 10)QString number(ulong n, int base = 10)QSt...
2020-02-25 19:16:26
1503
原创 error C3872: "0xa0": 此字符不允许在标识符中使用
最近写代码过程中,从网上粘贴一段代码,编译时报以下错误 最终通过查询资料得以解决:问题原因:0xa0是十六进制数,换成十进制就是160,表示汉字的开始。解决方案:在报错的代码行检查两边的空格,用英文输入法的空格替换掉代码:char * wchar2char(const wchar_t* wchar ){char * m_ch...
2020-02-25 19:05:35
1454
原创 计算几何--线段求交
线段求交问题描述:已知两条线段P1P2P_1P_2P1P2和Q1Q2Q_1Q_2Q1Q2,判断P1P2P_1P_2P1P2和Q1Q2Q_1Q_2Q1Q2是否相交,若相交,求出交点。两条线段的位置关系可以分为三类:有重合部分、无重合部分但有交点、无交点。方法一step1:快速排斥实验设以线段P1P2P_1P_2P1P2为对角线的矩形为R,设以线段Q1Q2Q_1Q_2Q1...
2020-02-20 18:55:48
1515
原创 对偶与直线排列
对偶与直线排列对偶(dual)对偶定义某个对象经过对偶变换后得到的映射,称为该对象的对偶(dual) 平面上的任何一点,都拥有两个参数⎯⎯x坐标和y坐标。平面上任何一条(非垂直的)直线,也拥有两个参数⎯⎯其斜率,以及它与y-坐标轴的交点。因此,可以通过某种一一对应的方式,将一组点映射为一组直线,反之亦然。如果做得巧妙的话,甚至可以将原先点集所具有的某些性质,转换为直线集所具有的...
2020-02-07 10:42:29
932
原创 解析XML文件 C++
最近突然想尝试去解析XML文件,网上查阅了一些资料,最后选用了TinyXML库来解析,个人感觉还是很好用的,跟大家分享下一些心得和demo,希望能帮助到大家。TinyXML 介绍读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的...
2020-01-17 15:32:31
377
转载 维诺图(Voronoi Diagram)分析与实现
ref:https://blog.csdn.net/k346k346/article/details/52244123一、问题描述1.Voronoi图的定义又叫泰森多边形或Dirichlet图,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。2.Voronoi图的特点(1)每个V多边形内有一个生成元;(2)每个V多边形内点到该生成元距离短于到其它生成元距离;...
2020-01-17 09:47:08
3507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人