自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 OpenGL混合函数和图片混合模式

OpenGL函数提供两个:glBlendFunc (GLenum sfactor, GLenum dfactor)和glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)释义:     glBlendFunc用来设置计算时两个颜色的混合因子;两个颜色分别是源图像(提供的...

2020-03-21 15:57:59 1288 1

原创 OC声明变量的各种方式

一、 @interface中直接声明,可见性protected(子类可继承)     这种直接在@interface中直接声明变量的方法,需要手动写get和set方法(也就是取值和设置值的方法)。专业一点,叫存取器。存取器(accessor):指用于获取和设置实例变量的方法。用于获取实例变量值的存取器是getter,用于设置实例变量值的存取器是setter.// ...

2020-03-07 17:53:47 1135

原创 lua类的继承【单继承&&多继承】

一、单继承---基类---普通银行账户,只能取自己存的钱,相当于储蓄卡Account = { id = -1, balance = 0}function Account:new(t) t = t or {} setmetatable(t, self) self.__index = self return tendfunction Account:deposite(x...

2019-12-04 08:07:03 411

原创 lua元方法和类的实现

一、元方法setmetatable&&__index     lua的元方法于C++的虚类有相似之处。举例:如果有一个tablet = {x = 10, y = 10, width = 20, height = 10}正常去获取t.x(补充:t.x相当于t[“x”])或者t.y是没有问题的,因为t里面已经有定义了。但是如果去获取t.wa,则就有问题了,因为t没有这个f...

2019-11-30 17:26:53 322

原创 xcode创建动态库并在本机应用

一、创建动态库工程1. 创建工程File -> New -> ProjectmacOS -> Library -> NextType选择Dynamic动态库,framework选择None。这个时候你的目录是这样的然后我们需要在工程中导入我们需要用的头文件和源文件。(可以看到cpp文件里边带了一个路径,表示源文件不在当前文件夹。为了验证是否勾选Co...

2019-11-23 19:03:49 840

原创 lua调用C++函数

       实际上,我们早就在无形中用到过这个概念了。比如我们在lua的脚本中使用过print函数。由于lua本身就是用C语言实现的,所以lua的print函数也只是调用了C语言的fwrite函数而已。稍后我们会从源码的角度来看一下这个实现,现在首先来说说怎么让lua调用C++的函数。       首先要明确一点,就是lua和C++之间的交互依然是通过栈来实现的,通过栈进行数据交互。那么我...

2019-11-20 09:42:04 1728

原创 C++调用lua函数及lua_pcall的错误处理示例

看过上一篇文章lua与C++交互—配置文件就知道C++是怎么获取lua里边的变量了,实际上用C++调用lua函数也与此类似。首先要获得lua函数的地址,然后我们通过栈将函数需要的参数传递给lua,然后运行该函数,函数会将运行结果压入栈,我们再从栈中取出结果即可。一、定义lua函数在lua文件里面我们写一个简单的加法函数。//config.lua文件内容function myadd(a,b)...

2019-11-18 10:30:22 2390 1

原创 lua与C++交互---配置文件

lua作为配置文件一. 基础数据配置背景: 我们可以将一些常常改动的数据写到lua文件中去,就不用每次在程序更改了一个小数据的时候就要重新编译整个项目。我们可以将这个工程里面写好解析脚本的功能就可以啦~1、简单变量的获取实例: 我们可以在config.lua文件中写到。// config.lua文件width = 1000height = 6000然后在c++程序里读取脚本文件里...

2019-11-16 21:07:35 435

原创 lua与C++交互的第一个实例【运行脚本和栈的概念】

环境配置参考上一篇博客https://blog.csdn.net/yulijuanxmu/article/details/102994637此篇主要介绍lua与C++的交互。包括基础的调用lua文件以及和lua栈相关的知识。一、第一个实例 //1. 初始化Lua虚拟机 lua_State *lua_state; lua_state = luaL_newstate(); ...

2019-11-16 17:42:14 235

原创 lua环境配置 &&与C++交互

一、 Lua脚本简介二、macOS上安装lua1. 命令2. 解释二、在Xcode里与C++交互1. 方法一:用系统环境变量2. 方法二:库拷入工程

2019-11-13 09:00:48 472

原创 error LNK2019:无法解析的外部符号 __imp__sprintf和__imp__vprintf

**问题:**用VS2017跑前人的某个VS2012项目,报某个库(freetype_d.lib)链接错误,一看符号名称,是和printf相关。1>freetype_d.lib(bdf.obj) : error LNK2019: 无法解析的外部符号 __imp__sprintf,该符号在函数 __bdf_parse_properties 中被引用1>freetype_d.lib(f...

2019-02-25 17:22:01 9492 6

原创 《红楼梦》读后小记

    听说读书后写写感受,作一点输出是好习惯,于是我也就来写写。    从2019年元旦左右开始读《红楼梦》,实际上,电视剧《知否》那时候正火,我等不及电视剧更新,已经把小说版本的《知否》看完了,连着看了几天,挺快,挺累。这时候才再次有念头再去读《红楼梦》,因为虽然之前尝试读过几次,但是始终都没坚持读完。之所以说要...

2019-02-23 17:04:08 224

原创 Cmake出现“No CMAKE_C_COMPILER could be found"问题

一、问题描述在用cmake配环境生成工程的时候,用VS2015编译器,点击Configure出现错误“No CMAKE_C_COMPILER could be found"以及“No CMAKE_CXX_COMPILER could be found"。如下图所示。如果是用VS2017编译器,则能生成工程文件,并正确运行。备注:本机安装了VS2015和VS2017,但是win10 SDK版本是...

2019-01-24 14:39:24 20196 4

原创 操作系统简答小记录

什么是进程和线程,它们的区别是什么? 答: 进程指的是计算机里面一个能运行的程序。它一般包括程序,数据和进程控制块。它强调的是对资源的所有权,比如对内存资源和IO资源的所有权。单处理器的计算机中一次只能有一个正在运行的进程。 线程是一个比进程小的概念,线程强调的是执行。一个进程可以有多个线程, 每个线程共享进程的内存和资源。 线程的优越性体现在:创建和销毁一个线程所需的时间...

2018-07-23 09:33:07 182

原创 C++简答小记录

1. C语言和C++的特点和关系 答: C语言是面向过程的编程,c++是面向对象的编程; C语言强调算法过程,而C++强调数据; C++是面向对象的,能够做到对数据和信息的隐藏,还能支持模板类泛型编程。2. 内联函数 ◇内联函数和常规函数的区别不在于编写方式,而在于编译器如何将它们组合到程序中; ◇常规函数的调用可以使程序跳到另一个地址(函数的地址)...

2018-07-22 20:31:27 205

原创 虚继承、虚函数 、sizeof

参考https://www.cnblogs.com/yanqi0124/p/3829964.html一、含有虚函数的类的sizeof 假设一个类含有虚函数,那么它就有个隐藏的虚表指针。 比如class Base { int a; virtual void f() {} virtual void g() {} virtual void h() {}...

2018-07-12 21:44:43 1154 1

转载 git bash 代码提交常用命令简易使用

转载自https://segmentfault.com/a/1190000010964033 1. git clone **(项目地址) 克隆一个git项目到本地,将git项目拉取到本地 2. git status 查看文件状态,列出当前目录没有被git管理,以及被修改过还未提交的文件 3. git add * 将我们提交的文件添加到索引库中(添加到缓冲区),*可以是路径也可以是.符...

2018-05-31 15:32:14 5602

原创 C++sort 函数小总结

1. 概念 昨天踩坑了,今天来总结一下sort函数的用法,sort函数是C++的STL里面的一个强大的算法,是用来处理容器的非成员函数。它接受两个RandomAccessIterators(随机存取迭代器),然后将区间内的所有元素以渐增方式由小到大排序。另外一个版本则可以指定排序标准。2. 适用模板类概览【此部分参考《STL源码剖析》,摘录,有略微表达不同】 a) STL的所...

2018-04-30 11:58:31 2603

原创 STL

参考《STL源码剖析》array 数组,array<int,3> a{1,2,3} ,还不如直接写int a[3]呢。不说了。vector 和array很相似,唯一差别在于空间的灵活性。array是静态空间,想要改变数组大小很麻烦(重新申请一个大的空间,复制数据过去,释放原来空间)。vector是动态空间,比如说每次新增元素时,如果超过当时的容量,则容量会扩充至两倍(如果两倍...

2018-03-28 22:28:29 121

原创 数组名 和 &数组名

程序 double str1[10]; cout << sizeof(str1) << endl; //此时求数组所占内存大小 80 cout << sizeof(&str1) << endl;//求数组首地址指针所占内存大小 win32下4 std::cout << str1 <&l...

2018-03-23 21:27:32 355

原创 c++中char *和string之间的转换方法

 由于这两天恰好用到char *和string之间的转换,在网上搜索各种方法,在这里记录一下,以便日后翻阅.  参考:  https://www.cnblogs.com/devilmaycry812839668/p/6353807.html  和https://zhidao.baidu.com/question/104592558.htmlchar * 或者char[]转换成stri...

2018-03-21 16:07:55 1216

原创 Leetcode [290Word Pattern]涉及到的小知识--string

题目是: Given a pattern and a string str, find if str follows the same pattern. Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s

2018-01-11 18:15:59 209

原创 c++的整数表达

由于老是记不太住short,int,long,long long所表示的数的范围,所以在这里记录一下。int的表示与编译器有关,一般的编译器用四个字节来表示。4个字节有32位,其中第一位用来表示“正负”,其余31位用来表示数值,那么int范围是(-2^31,2^31-1)【为什么负数能多表示一个,参考http://blog.sina.com.cn/s/blog_9e67285801010vms.ht

2017-12-29 16:32:33 2540

原创 判断一个单链表是否存在环

这是leetcode上面的一道简单题【141. Linked List Cycle】,大约半个月前刷到的,当时没想出来,然后看到的Solution,提到了hash表和快慢指针两种算法,觉得好复杂,然后放着没有去想了。恰好导师有新的idea让我试下,所以一放就放到现在,今天终于实现了。开熏。   这里记录两种方法:快慢指针法和利用STL里面的map或者set实现的方法(用STL的方法实际上和hash

2017-12-19 19:50:58 297

原创 分治策略 & 最大子数组的问题

刷LeetCode题目刷到第53题Maximum Subarray。意思是:给定一个数组,求一个和最大的子数组。例如给定[-2,1,-3,4,-1,2,1,-5,4], 那么可以求得连续子数组 [4,-1,2,1] 能取得最大和sum = 6. P.s子数组的意思是,数据要联系,子序列的意思就是顺序得按照原来数组来,但是不要求连续。   去翻阅了《算法导论》第三版,里面的第四章讲分治策略,恰好就是

2017-11-23 20:51:35 298

转载 STL的reserve和resize

以下的reserve和resize区别不限于vector,也适用于string等。 转载自:http://blog.csdn.net/colddie/article/details/8665456   reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用容器内的元素,因此当加入新的元素时,需要用push_back()/insert()函数。   resize是改变

2017-11-23 11:04:01 298

原创 C++的string

string类型是c++编程中常用的一种数据类型,下面简要总结它的用法。连接两个string或者连接一个string一个char用+举例:#include <iostream>#include <string>int main(){ std::string s1 = "Hello"; std::string s2 = "world"; std::cout << s1 +

2017-11-20 21:45:14 268

原创 合并有序链式线性表

Leetcode的easy题之21Merge Two Sorted Lists要求合并两个已经排好序的链式线性表。其实就是简单的链表操作。   但是由于自己各种操作不熟悉,这道题捯饬了一天。首先就是这个控制台输入两组数,分别建立两个线性表这里卡了很久。另一个点就是把链表接起来,这里操作也不是很熟悉。以下就分这两个点来总结记录一下。控制台输入建立链式线性表要求:两组数以回车符'\n' 作为分隔标记,

2017-11-18 18:24:39 968

原创 C++栈

Leetcode 的easy题之20.Valid Parentheses做的是括号的匹配。就是一个简答的栈的应用问题。因此在这里简单记录一下c++模板类里面的stack用法。stack头文件#include<stack>构造函数 std::stack s;常用函数 top:获得栈顶元素 empty :判断是否非空 size: 获得栈的元素个数 push:压元素进栈 pop:弹出元素,

2017-11-18 14:03:55 256

原创 今日刷水题总结20171116

就是买了新键盘想打字而已,哈哈~~  今天不想看那本超厚的数据结构,因为《数据结构》这类书,我拿起了多次,也放下了多次,今天想着不看书,就刷刷水题吧。刷了四道:   第一道题:7Reverse Integer。讲的是让把一个整数倒置过来,如果溢出就返回零,一开始没有看到题目中溢出这个提示,所以只是单纯地倒置,做做除法,取取模,做做乘法,做做加法,结果一提交,发现有错,网站给出了错误案例,在自己的V

2017-11-16 20:45:25 292

原创 空间复杂度和时间复杂度

空间复杂度程序所需的空间主要由以下部分组成: 1. 指令空间 指令空间指编译之后的程序指令所需的存储空间。 2. 数据空间 所有常量和变量值所需要的存储空间。 3. 环境栈空间 环境栈用来保存暂停的函数和方法恢复运行时所需的信息。包括:返回地址&正在调用的函数的所有局部变量的值以及形式参数的值(有些编译器仅对递归函数保存局部变量和形参)。时间复杂度用分析方法确定一个

2017-11-15 21:31:13 198

原创 小练习

1.利用递归生成字母数组的字典序排列。 关键字:pertubation copy(list, list + m + 1, ostream_iterator<char>(cout, "")); swap函数

2017-11-14 17:11:51 256

原创 友元函数的概念

对于一个类的私有成员,只有类的成员函数才能直接访问。外部的类或者函数想要访问就必须给予它权利,也就是设置成该类的友元(friend)。#include<iostream>#include<cstdlib>using namespace std;class currency{ //建立友元 friend ostream& operator<<(ostream& out, con

2017-11-13 19:27:48 372

原创 操作符重载

#include<iostream>#include<cstdlib>using namespace std;class currency{public: currency(int init = 0) { amount = init; } currency &increase(const currency& x) {

2017-11-13 19:00:32 166

转载 常量成员函数

参考http://blog.csdn.net/xuxiatian/article/details/51247972 常量成员函数声明:如:int get() const;规则:1.常量成员函数不修改对象。 2.常量成员函数在定义和声明中都应加const限定 3.非常量成员函数不能被常量成员函数调用,但构造函数和析构函数除外。 4.常量(const对象)对象只能调用常量成员函数。(const对

2017-11-13 16:27:46 240

原创 动态创建二维数组

利用数组指针char(*c)[5];try{c = new char[n][5];}catch(bad_alloc){ cerr<<"Out of Memory"<<endl; exit(1);}其中c 是一个数组指针,[5]指定的是列数。利用指针的指针try{ char **x = new char *[numberOfRows]; for(int i=0

2017-11-13 15:36:52 256

转载 数组指针和指针数组

详细的参考https://www.cnblogs.com/mq0036/p/3382732.html数组指针(也称行指针)定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4];

2017-11-13 15:15:26 145

原创 操作符new

说明new用来进行动态存储分配或运行时存储分配,它的值是一个指针int *y;//先声明y = new int;*y = 10;或者写成int *y = new int(10);举例直接贴上几个例子: 1. int *a = new int;//用new来开辟一个存放整数的存储空间,返回指向改存储空间的地址,赋值给a,整型数值大小不定 2. int *a = new int(100);//同

2017-11-13 12:07:42 282

原创 引用返回

函数返回的类型返回值返回引用(reference return)返回常亮引用(const reference return)返回引用的作用可以减少复制操作(返回的是对象的话,可以避免调用复制构造函数),提高效率;引用返回的结果可以作为左值。#include <iostream>#include <cstdlib>**const** int& abc(int a, int b, int

2017-11-13 10:23:15 347

转载 priority_queue的实现最小堆的用法

转自http://www.cnblogs.com/flyoung2008/articles/2136485.html   priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queu

2017-09-14 15:06:54 894

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除