C++
Lqsaber
励志成为一个优秀C++参天巨猿
展开
-
Prometheus+Pushgateway+Grafana可视化监控全流程,并实现自定义监控
一、Prometheus 简介 Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅...原创 2020-04-28 15:09:50 · 4092 阅读 · 3 评论 -
C/C++ 如何调用Lua中的数据
/*1.lua*/ luat_Test1={a=123, b=456, c=789} luat_Test2={123, 456, 789} luatable = { { Level = 1,sid = "monster" }, { Level = 2,sid = "man" } } for i,v in pairs(luatable)do for j,v1 in原创 2016-03-22 16:15:05 · 408 阅读 · 0 评论 -
如何在Windows平台使用VS搭建C++/Lua的开发环境
本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境。这里的“C++/Lua开发环境”主要指的是C++调用Lua,以及Lua调用C++。Mac平台相对会比较方便,但是VS也不是很麻烦就是了。Mac上利用XCode搭建的教程可以参考子龙山人的教程,当然也可以利用其他IDE,比如Eclipse+CDT+LDT来搭建,这都没有问题。 另外,本文不谈及Lua/C++的交互,相关内容可以转载 2016-02-29 10:33:06 · 748 阅读 · 0 评论 -
C++调用Lua函数
int main() { lua_State * L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "2.lua"); lua_getglobal(L,"test1");//调用无参无返回值函数 lua_pcall(L,0,0,-1);//有0个参数0个返回值,调用失败返回-1 lua_getglobal(L,"tes原创 2016-03-24 17:12:34 · 868 阅读 · 0 评论 -
C++遍历Lua二维table
#include #include using namespace std; #include "lua.hpp" lua_State *L; int getfield(lua_State *L,int key1,int key2) { int result = 0; lua_pushnumber(L,key1); lua_gettable(原创 2016-03-25 10:54:57 · 1657 阅读 · 0 评论 -
Lua调用C++的函数
#include "Study.h" Study::Study() { } Study::~Study() { } int Study::ceshi(lua_State*L) { cout return 0; } int main() { int i = 0; Study *study = new Study(); lua_Sta原创 2016-03-25 14:19:28 · 260 阅读 · 0 评论 -
Lua调用C++的变量
#include #include "lua.hpp" int main(void) { lua_State *L = luaL_newstate(); luaL_loadfile(L,"2.lua"); luaL_openlibs(L); lua_pcall(L,0,0,0); int iNum = 100; char szStr[] = "World"; lua_原创 2016-03-25 14:38:02 · 956 阅读 · 0 评论 -
设计模式之代理模式(C++实现)
代理模式:为其他对象提供代理以控制对这个对象的访问。 代理模式运用的场合: 1、远程代理。也就是为对象在不同的地址空间提供局部变量代表,这样可以隐藏一个对象存在于不同地址空间的事实 2、虚拟代理。 3、原创 2016-05-24 16:59:16 · 316 阅读 · 0 评论 -
设计模式之观察者模式(C++实现)
观察者模式概念:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。 特点: 1.观察者模式定义了对象之间一对多的关系。 2.主题(也就是可观察者)用一个共同的接口来更新观察者。 3.观察者和可观察者用松耦合的方式结合,可观察者不知道观察者的细节,只知道观察者实现了观察者接口 4原创 2016-06-16 16:40:33 · 318 阅读 · 0 评论 -
快速排序
#include using namespace std; void QSort(int a[],int left,int right) { if(left >= right) { return; } int first = left; int end = right; int k = a[first];原创 2016-02-19 15:53:49 · 243 阅读 · 0 评论 -
单例模式及其C++实现
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 //Singleton.h文件 #ifndef _SINGLETON_H #define _SINGLETON_H class Sin原创 2016-02-18 15:18:31 · 382 阅读 · 0 评论 -
Winodws实现基于UDP的简单聊天程序
客户端: #include #include #pragma comment(lib,"WS2_32.lib") int main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(1,1); err = WSAStartup(wVersionRequested,&原创 2016-01-20 16:37:14 · 533 阅读 · 0 评论 -
sizeof()用法汇总
sizeof()功能:计算数据空间的字节数 1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。 2.指针与静态数组的sizeof操作 指针均可看为变量类型的一种。所有指针变量的sizeof 操作结果均为转载 2015-09-30 10:57:51 · 387 阅读 · 0 评论 -
malloc函数详解
一、原型:extern void *malloc(unsigned int num_bytes); 头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。) 功能:分配长度为num_bytes字节的内存块 说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。 当内存不再使用时,应使用free()函数将内存块释转载 2015-09-30 11:15:56 · 363 阅读 · 0 评论 -
memcpy函数用法
原型:extern void *memcpy(void *dest, void *src, unsigned int count); 用法:#include 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。 举例: // memcpy.c转载 2015-09-30 11:48:35 · 465 阅读 · 0 评论 -
extern "c" __declspec(dllimport) __declspec(dllexport)
extern "C "只是表示这个可以被C语言调用,除了这个之外,没有什么更多含义。 由于C++里面有函数重载,所以在编译的时候,编译器会在你写的,也就是你希望导出的函数 后面加上一些关于参数的信息,也就是真正导出的函数名字和你想要的不一样。 又由于C语言没有函数重载,所以用EXTERN "C"的意思就是告诉编译器不要按照C++那样修改函数 名称。 因为C语言的编译器和C++转载 2015-10-10 12:02:21 · 4391 阅读 · 0 评论 -
C++的try_catch异常
一、简单的例子 首先通过一个简单的例子来熟悉C++ 的 try/catch/throw: 1 #include //包含头文件 2 #include 3 doublefuc(double x, doubley) //定义函数 4 { 5 if(y==转载 2015-10-12 15:10:05 · 358 阅读 · 0 评论 -
回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 机制 ⑴定义一个回调函数; ⑵提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; ⑶当特定的事件或条件转载 2016-01-19 10:25:15 · 548 阅读 · 0 评论 -
Lua类型与值
Lua是一种动态类型语言。在语言中没有类型定义的语法,每个值都携带了它自身的类型信息。 在Lua中有8种基础类型:nil(空,如果给一个全局变量赋值nil等同于删除它)、boolean(布尔,只有nil和false表示“假”,其他全视为真)、number(数字)、string(字符串,可以在字符串前放置“#”来获得字符串的长度)、userdata(自定义类型)、function(函数)、thre原创 2016-03-04 14:35:40 · 376 阅读 · 0 评论 -
Windows实现基于TCP的网络应用程序
客户端: #include #include #pragma comment(lib, "WS2_32.lib") int main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD(1,1); err原创 2016-01-20 13:57:56 · 639 阅读 · 0 评论 -
C++之static
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: [cpp] view plainc转载 2015-08-28 11:37:05 · 301 阅读 · 0 评论