自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浮尘丶若梦

勿在浮沙筑高楼,打好基础是关键

  • 博客(90)
  • 收藏
  • 关注

原创 c++单项链表

【代码】c++单项链表。

2023-02-17 13:41:17 102

原创 c++ 使用类模板实现动态数组

【代码】c++ 使用类模板实现动态数组。

2023-02-16 16:13:39 314

原创 golang实现一个简易的内存池

【代码】golang实现一个简易的内存池。

2022-11-17 15:57:47 375

原创 常量区中数据为什么不能修改

常量区中的数据是怎么存储的实现字符串的赋值。等价系统提供的字符串赋值。底层字符数组是引用关系。既然我们能拿到地址,先改改看。(能拿到地址,总想干点啥坏事。。。)崩了,字符串常量存储在常量区,常量区的内存是不让修改的。为啥常量区的内存不让修改呢? 这个是规定,记住就行了。看看我们把str2也赋值成“hello world”结果字符数组的地址还是一样的。相同的常量值在常量区只有一份,不同的变量都是在引用这份数据。所以它不能修改,如果通过内存操作把常量数据修改了,那其他的引用都被修改了。那问题就

2021-10-13 16:10:53 1083

转载 golang 如何使用静态库开发

go:binary-only-package体验Gox_src/x.gopackage x import "fmt" func init() { fmt.Println("x package init..")}func Add(x, y int) int { return x + y} func Hello(name string) { fmt.Printf("Hello %s\n", name)}go build -o x.a -i // 编译静态库,然后复

2020-11-05 11:55:15 1232

原创 Go 发布订阅模型

学习记录(Go语言高级编程)package pubsubimport ( "fmt" "runtime/debug" "sync" "time")type ( subscriber chan interface{} //订阅者为一个管道 filterFunc func(v interface{}) bool)type Publisher struct { sync.RWMutex //读写锁 buffer in

2020-10-20 10:20:39 298

原创 Golang 生产者消费者模式

并发编程中最常见的例子就是生产者消费者模式,该模式主要通过平衡生产线程和消费线程的工作能力 来提高程序的整体处理数据的速度。简单地说,就是生产者生产一些数据,然后放到成果队列中,同时 消费者从成果队列中来取这些数据。这样就让生产消费变成了异步的两个过程。当成果队列中没有数据 时,消费者就进入饥饿的等待中;而当成果队列中数据已满时,生产者则面临因产品挤压导致CPU被剥 夺的下岗问题。Go语言实现生产者消费者并发很简单:package mainimport ( "fmt" "os" "os/sig

2020-10-19 14:43:47 814

原创 go语言接口避免无意被适配

go语言接口避免无意被适配对象和接口之间太灵活了,导致我们需要人为地限制这种无意之间的适配。常见的做法是定义一 个含特殊方法来区分接口。比如 runtime 包中的 Error 接口就定义了一个特有 的 RuntimeError 方法,用于避免其它类型无意中适配了该接口:type runtime.Error interface { error RuntimeError()}在protobuf中, Message 接口也采用了类似的方法,也定义了一个特有的 ProtoMessage

2020-10-17 14:18:32 346

转载 内存的管理和分页机制

一、问题提出:我们经常会使用malloc()以及free()函数进行堆区内存申请与释放。那么你是否会这样做:int * p = malloc(0);/*malloc分配了0个字节吗,如果是那么p指向谁呢,是NULL吗*/free(p);/*假如malloc分配了0个字节,p指向了NULL,那么free(NULL)不会出现段错误吗*/12...

2020-07-08 17:35:56 333

转载 Go 并发控制--WaitGroup的使用

开发过程中,经常遇到task之间的同步问题。例如,多个子task并发完成一部分任务,主task等待他们最后结束。在Go语言,实现同步的一种方式就是WaitGroup。package main import ( "fmt" "sync" "time")func main() { var wg sync.WaitGroup wg.Add(...

2019-10-11 11:17:18 231

原创 Lua 可变参数与unpack

Lua支持可变参数,用…表示。例如:local function func(...) print(...)end当然也可以在前面添加固定参数local function funca(a,...) --TODO:end可以用花括号将…打包起来成为一个table,例如:local function func(...) print(...) local...

2019-07-26 10:29:19 358

转载 golang 关于sort排序的使用

package mainimport ( "fmt" "sort")//学生成绩结构体type StuScore struct { //姓名 name string //成绩 score int}type StuScores []StuScore//Len()func (s StuScores) Len() int { return len(s)}//...

2019-07-22 17:45:00 1133

原创 go 面向对象学习总结

package mainimport "fmt"const ( Choice = iota Blank)type IQuestion interface{ GetQuestionType() int GetQuestionContent() string AddQuestionContentPrefix(prefix string)}type BaseQuestion...

2019-07-02 19:03:25 110

转载 通过Type.InvokeMethod实现方法的重载

版本:.NET Framework 3.5先来一个反射调用方法的例子:using System;using System.Reflection;class Example{ static void Main() { Type t = typeof(String); MethodInfo substr = t.GetMethod("Sub...

2019-06-29 16:14:13 463

原创 C# 使用反射 理解GetMethods,GetParameters,MethodInfo.Invoke的使用

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Reflection;namespace ReflectionTest{ class MyClass { ...

2019-06-28 11:40:28 3534

转载 Redis和MySQL的结合方案

方案由从易到难的顺序,但无论哪种方法,都需要保证的是Reids和MySQL的数据一致性。方案一:程序同时写Redis和MySQL读Redis方案二:程序写MySQL, 使用Gearman调用MySQL的UDF,完成对Redis的写读Redis参考 《利用Gearman进行Mysql到Redis的复制》方案三:程序写MySQL, 解析binlog,数据放入队列写Redis读R...

2019-06-21 10:20:03 130

转载 解码mmo游戏服务器三:大地图同步(aoi)

转载:https://blog.csdn.net/yyhero1/article/details/81777007问题引入:aoi(area of interest).在大地图中,玩家只需要关心自己周围的对象变化,而不需要关心距离较远的对象的变化。所以大地图中的数据不需要全部广播,只要同步玩家自己视野范围的消息即可。解决方案:1:灯塔法。所谓灯塔法,即将大地图划分成有限的小格子,在每个小格...

2019-06-17 17:16:08 747

转载 十字链表的AOI算法实现

[game]十字链表的AOI算法实现AOI主要有九宫格、灯塔和十字链表的算法实现。本文阐述十字链表的实现和尝试。基本原理根据二维地图,将其分成x轴和y轴两个链表。如果是三维地图,则还需要维护多一个z轴的链表。将对象的坐标值按照大小相应的排列在相应的坐标轴上面。基本接口对对象的操作主要有以下三个接口:add:对象进入地图;leave:对象离开地图;move:对象在地图内移...

2019-06-17 11:51:28 611

转载 理解Lua语言中的__index,__newindex,rawget和rawset

from:http://blog.csdn.net/wangbin_jxust/article/details/12108189 在谈及Lua中的__index,__newindex,rawget和rawset前,需要理解Lua中的元表这个概念。零、元表的概念对Lua中元表的解释: 元表可以改变表的行为模式。这里举个例子:Window = {} Window.prototy...

2018-12-27 14:23:23 227

转载 va_start和va_end使用详解

va_start和va_end使用详解  本文主要介绍va_start和va_end的使用及原理。在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理:1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(....

2018-12-05 15:41:43 187

转载 GCC 提供的原子操作

GCC 提供的原子操作gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:复制代码type __sync_fetch_and_add (type *ptr, type value, …)type __sync_fetch_and_sub (type *ptr, type value, …)type __sync_fetch_...

2018-12-05 15:39:07 117

转载 linux awk命令详解

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho

2016-12-15 17:10:11 193

转载 shell笔记-local、export用法

local一般用于局部变量声明,多在在函数内部使用。    1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。    2.    Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限

2016-12-15 17:04:36 742

转载 CENTOS 6.5 配置YUM安装NGINX

第一步,在/etc/yum.repos.d/目录下创建一个源配置文件nginx.repo:?123cd /etc/yum.repos.d/ vim nginx.repo填写如下内容:?1234

2015-12-14 16:57:25 274

转载 gdb查看stl容器中的内容

1 gdb-stl-views(比较好用)这是由Dan Marinescu编写的一些宏,用来查看gdb容器内容,支持list, vector, map, multimap, set, multiset, dequeue, stack, queue, priorityqueue , bitset, string, 以及widestring,从http://sourceware.org/gdb

2015-11-24 12:33:05 1126

原创 gdb 显示数组全部元素

gdb 显示数组全部元素    p *a@10 或者 p (int [10])*a

2015-11-24 12:28:52 2806

原创 samba 服务搭建

yum install samba samba-client samba-swat/etc/init.d/smb start/stop/restartservice smb statuschkconfig --level 35 smb on1)关闭防火墙: #sevice iptables stop2)修改 /etc/samba/smb.conf,具体配置网上有,我的如下: security ...

2015-09-24 17:02:53 285

转载 linux下samba的配置和使用

第一部分:基础知识 windows的网上邻居是windows主机间彼此共享文件的一种方式,它所用到的协议有两个:smb和cifs协议当然还包括windows的netbios协议SMB:service message blockcifs:common internet filesystemNETBIOS:实现windows间主机名解析的服务

2015-09-22 17:27:50 332

原创 Js学习笔记(一)

我们可以把JS另存为一个.js文件,通过src引入即可,它具有维护性高,可缓存(加载一次,无需加载)、方便未来扩展的特点   这样标签内就没有任何JS代码了。但,要注意的是,虽然没有任何代码,但也不能用单标签:也不能在里面添加任何代码:>alert("hello")/script>按常规,我们会把标签存放到..之间,但有时也会放在body之间。不再需要提

2015-08-25 15:50:47 322

原创 vim 粘贴时取消自动换行

当vim中,对于C代码会有自动换行。但是,有时候我们需要在向vim中粘贴代码时,需要关闭自动换行的功能。在vim中,:set paste  之后进行插入操作,vim提示变为: -- INSERT (粘贴) --   这时就不再有自动换行。之后,如果要恢复,:set nopaste

2015-07-28 10:44:32 2429

转载 Python特殊语法:filter、map、reduce、lambda

filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5,

2015-07-24 17:44:30 230

转载 Python正则表达式指南

转载:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html1. 正则表达式基础1.1. 简单介绍正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表

2015-07-24 13:43:03 221

转载 Python 目录操作

在Python中,文件操作主要来自os模块,主要方法如下:os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回当前目录('.')os.chdir(dirname):改变工作目录到dirnameos.path.isdir(name):判断name是不是一个目录,name不是目录就返回fal

2015-07-24 13:31:33 251

转载 Python中startswith和endswith的一些说明

如果你要用python匹配字符串的开头或末尾是否包含一个字符串,就可以用startswith 和 endswith例如: content = 'ilovepython'如果字符串content以ilove开始,返回True,否则返回False则可以用这句脚本进行判断:  if content.startswith("ilove") : .......>>>返回trueif

2015-06-29 11:26:40 338

转载 MFC——ComBox用法大全

Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBox Class来操作字符串列表。 1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件

2015-05-22 10:31:44 550

转载 在Linux中设置共享目录

1.  是否安装了samba服务 sudo apt-get install samba sudo apt-get install smbfs2.  创建需要共享的目录/ home/usr/share在目录/home/xxxx/share      xxx为用户名mkdir share3. 修改该目录权限     

2015-05-18 15:07:45 808

转载 使用 vim + ctags + cscope + taglist 阅读源码

from:http://blog.sina.com.cn/s/blog_6a717d640101aaqy.html 阅读源码的工具有很多,而且如今的集成开发环境(IDE)也很强大,但对于经常使用vim编辑器的程序员来说,对vim的强大绝对是“不抛弃,不放弃”的,况且我们只要安装一些插件配合vim的工作一样能达到IDE的效果,好了,废话少说。浏览了很多有关的网页资源后,发现有很多插件可以

2015-05-11 14:51:44 434

转载 GDB调试多线程

http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html http://hi.baidu.com/litto/blog/item/759389dd198111375882dd1e.html http://blogold.chinaunix.net/u3/94700/showart_2389432.html 

2015-05-11 11:03:07 444

转载 linux下IPTABLES配置详解

linux下IPTABLES配置详解如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source

2015-04-25 17:16:21 277

转载 Lua:元表(metatable)与元方法(meatmethod)

元表概念:引言:Lua中的每个值都有一套预定义的操作集合,如数字相加等。但无法将两个table相加,此时可通过元表修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。访问机制:一般的元方法都只针对Lua的核心,也就是一个虚拟机。它会检测一个操作中的值是否有元表,这些元表是否定义了关于次操作的元方法。例如两个table相加,先检查两者之一是否有元表,之后检查是否有一

2015-03-31 15:02:49 344

空空如也

空空如也

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

TA关注的人

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