c++
文章平均质量分 56
一个人的场域
目前主要做NLP、推荐算法相关工作
展开
-
c++ string 扩展函数
点击打开链接1. toupper, tolower地球人都知道 C++ 的 string 没有 toupper ,好在这不是个大问题,因为我们有 STL 算法:[cpp] view plain copy #include #include using namespace std; int mai转载 2016-04-05 10:29:48 · 1077 阅读 · 0 评论 -
自定义类型使用hash_map时自定义hash函数
#include #include #include using namespace std;//define the classclass ClassA{ public: ClassA(int a):c_a(a){} int getvalue()const { return c_a;} void se原创 2016-04-20 20:34:09 · 956 阅读 · 0 评论 -
define中的#、##、#@及\
1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。如:#define example(instr) printf("the input string is:\t%s\n",#instr)#define example1(instr) #instr转载 2016-05-05 15:24:33 · 1029 阅读 · 0 评论 -
虚函数tips
零散tips1. 如果class A含有纯虚函数,则A为抽象类,不可以实例化; class B继承A,如果B没有实现A的纯虚函数,则B也是抽象类,不可以实例化。原创 2016-04-21 15:38:35 · 220 阅读 · 0 评论 -
php C++扩展的开发
最近两天,学习了一下PHP c++扩展的开发流程。 中间遇到不少坑,特此记录。创建一个mongo_cpp扩展1. 创建扩展的目录 #cd php-5.3.6/ext #./ext_skel --extname=hello2.编辑config.m4 放开一下内容: PHP_ARG_ENABLE(hello, whether to e原创 2016-04-12 13:50:00 · 320 阅读 · 0 评论 -
sizeof 与 strlen
Sizeof与Strlen的区别与联系一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof转载 2016-05-06 14:05:08 · 215 阅读 · 0 评论 -
C 的errno
1. errno 是记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义2. errno - number of last errorif (somecall() == -1) {printf("somecall() failed\n");if (errno == ...) { ... }}这样的例子并不能得到somecall这个函数的运行原创 2016-04-22 10:10:33 · 398 阅读 · 0 评论 -
Visual Studio 下生成dll 和调用dll
转自:https://www.douban.com/note/366236574/在非Visual Studio下怎么去编译dll已经在另外一个post中做了描述:http://www.douban.com/note/320768748/。但是,Visual Studio毕竟是一个非常主流,很难回避的一个编译和整合工具。如何在Visual Studio下,最最最简单的方式声场dll转载 2016-05-18 17:37:14 · 1393 阅读 · 0 评论 -
Unable to load DLL 'xxx.dll': 找不到指定的模块。 (Exception from HRESULT: 0x8007007E)
使用virtual studio编译生成dll给c#用,在本地使用ok,但到线上服务器就加载失败。网上很多解释及方法,最终发现我的是以下问题:1. 下载dependencywalker,查看制作的dll,发现依赖一个virual studio 的dll: MSVCR100D.DLL 所以问题是线上的服务器并没有安装vs,没有这个dll,导致加载出错2.解决方法: 制原创 2016-05-31 17:14:49 · 14181 阅读 · 1 评论 -
visual studio 中UDP 服务器端和tcp客户端示例
bool data_coll(const char* msg, char* err){ WSADATA wsd; SOCKET s; int nRet; // 初始化套接字动态库 if(WSAStartup(MAKEWORD(2,2),&wsd) != 0) { printf("WSAStartup原创 2016-05-18 17:52:47 · 2313 阅读 · 0 评论 -
Linux 下java 中添加c++
今天尝试使用java调用c++。 流程记录一下吧,因为遇到不少坑。1. 创建 MyTest.java 1) mkdir net; cd net; mkdir test; //包名: net.test 2)cd testt; vi MyTest.java package net.test;public class MyTest { p原创 2016-04-19 11:51:34 · 293 阅读 · 0 评论 -
c++ new string数组问题
今天考虑一个问题: string *p = new string[5]; p[0] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; p[2] = "bb";new操作时是需要知道类型的大小的。但new string[5]时怎么知道string的大小的呢? 感觉很奇怪。 经过思考,认为原因如下:转载 2016-06-12 19:53:18 · 14614 阅读 · 0 评论 -
linux下设置自动启动服务(程序)
1.开机启动时自动运行程序Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",转载 2016-05-16 10:06:16 · 425 阅读 · 0 评论 -
孤儿进程与僵尸进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的转载 2016-05-03 18:55:40 · 246 阅读 · 0 评论 -
Mongodb C++ Deamon 及API说明
先看代码:#include #include #include "mongo/client/dbclient.h"using namespace mongo;using namespace std;/////////////////////////////////////////////////////////////////////// @notes: print all原创 2016-03-28 15:35:01 · 1591 阅读 · 0 评论 -
sprintf 与snprintf
标准库函数原型如下int printf(const char *format, .....)int sprintf(char *str, const char *format, ....)int snprintf(char *str,size_t size, const char *format,....)snprintf最多从源串中复制size-1 个字符到目标串中,然后再后面加原创 2016-04-07 18:56:36 · 368 阅读 · 0 评论 -
值得学习的C语言开源项目
原文: http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.aspx值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连转载 2016-04-26 10:39:57 · 434 阅读 · 0 评论 -
makefile 模板
目录结构: inc src xx1.cpp xx2.cpp object binmakefile如下:PRJHOME = .TARGET = $(PRJHOME)/bin/mainSRC_PATH = $(PRJHOME)/srcOBJ_PA原创 2016-04-26 17:58:08 · 344 阅读 · 0 评论 -
socket阻塞与非阻塞,同步与异步
http://blog.csdn.net/hguisu/article/details/7453390socket阻塞与非阻塞,同步与异步1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步/异步主要针对C端: 同步:转载 2016-04-28 15:41:03 · 338 阅读 · 0 评论 -
select、poll、epoll之间的区别总结
转载: http://www.cnblogs.com/Anker/p/3265058.htmlselect,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这原创 2016-04-28 16:16:50 · 309 阅读 · 0 评论 -
win32中GBK、UTF8的互转
转 http://www.cnblogs.com/hnrainll/archive/2011/05/07/2039700.htmlwin32中GBK、UTF8的互转#include "stdafx.h"#include #include //GBK编码转换到UTF8编码int GBKToUTF8(unsigned char * lpGBKStr,unsigned c转载 2016-05-24 15:19:40 · 1020 阅读 · 0 评论 -
ASCII与BCD
通常ASCII码用来在计算机种表示各种字符和字母,而BCD码则用来方便的表示十进制数两者没有必然的联系~~BCD码通常是指8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码 bcd码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都转载 2016-04-18 09:42:07 · 1137 阅读 · 0 评论 -
c++ byte与int
byte不是一种新类型,在C++中byte被定义的是unsigned char类型;但在C#里面byte被定义的是unsigned int类型//int转bytevoid intToByte(int i,byte *bytes,int size = 4){ //byte[] bytes = new byte[4]; memset(bytes,0,sizeof(b转载 2016-05-26 16:41:31 · 841 阅读 · 0 评论 -
互斥量与条件变量
http://blog.chinaunix.net/uid-27177626-id-3765181.htmlhttp://blog.csdn.net/bolike/article/details/9025389一、概述 在多线程或者多进程共享数据时,为了保证数据的完整性和正确性,,使用同步机制来实现。互斥锁和条件变量均是出自posix.1线程标准,可以被用来同步一个进程中的多个转载 2016-05-03 16:40:04 · 586 阅读 · 0 评论 -
sigaction函数
http://www.cnblogs.com/wblyuyang/archive/2012/11/13/2768923.html使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数,其接口头文件及原型如下转载 2016-05-03 17:44:27 · 298 阅读 · 0 评论 -
linux 之PATH、LD_LIBRARY_PATH及编译指定头文件、动态库
1. PATH是可执行程序的查找路径2. LD_LIBRARY_PATH是动态库的查找路径3. 编译时可以临时指定头文件路径、动态库路径及动态库 g++ main.cpp -I ~/tools/include -L/usr/lib/x86-aaa -lboost_thread原创 2016-03-25 16:53:24 · 1161 阅读 · 0 评论