自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 vector配合多线程的bug

今日加利福尼亚大学同学来访问,写的程序core了,帮忙调试好半天。。纪录一下奇葩的bug。起始bug的原因挺容易想到的,而且也是写代码的时候应该注意的地方。应为vector内存动态增长的原因,vector中的元素的指针和引用都是不可靠的。当然这一点在单线程时基本没有问题。但是多线程就跪了。多线程传给线程函数一个vector中元素的指针,而主线程会改这个vector,导致线程函数需要用vec

2016-08-10 14:40:14 2543

原创 使用boost实现python调用c++

使用boost.python实现python调用c++代码编写c++代码后,编译成动态链接库,然后python可以直接调用参考http://www.boost.org/doc/libs/1_61_0/libs/python/doc/html/index.html代码中实现了python参数,到c++参数的转化,可以把一个python的可迭代对象转化成c++中的list map vect

2016-07-08 16:06:33 1366

原创 使用boost graph library计算图中点和边的betweenness

项目中用到的东西,betweenness是社交网络里的概念。基于的思想是betweenness高的点和边在网络中更重要。betweenness具体定义见这里搜了一下发现boost已经有实现,但是用起来也真是费了牛劲。模版类一不小心就写错,而且编译出错信息完全看不出来什么。搜了文档和例子才算写好了。。下面是一个星状图的例子:input:0 1 1 // an edge from 0

2016-06-16 15:07:37 1614

原创 c++中构造函数调用构造函数

c++中构造函数完成的工作分两步:1 分配空间 2 初始化空间构造函数调用构造函数。class A {public: A() { A(0) // new(this)A(0) 可用办法,使用pleacement new 在串入的指针this位置构造对象 } A(int a) { _a = a; }private: i

2016-05-24 10:44:22 615

原创 c++ 如何把this指针传入成员函数 像全局函数一样调用成员函数

测试这个功能的初衷是测试boost里面的bindboost::bind((&A::sum), &a, _1, _2)上面的代码是我boost bind及多线程这篇博客里面的一行代码。我就像boost是怎么做到这样调用一个类的成员函数的。其实成员函数和全局函数无非就是差一个this指针参数。给传进去不久也可以调用了。然而并没有那么简单。看了boost的源码表示太长了。没怎么看懂然后就

2016-05-06 17:24:31 2925

原创 c++11 学习及测试(emplace_back实现方式 数学分布 正则表达式)

可变长度参数列表,参数原始类型转发(emplace_back实现方式)#include #include #include #include using namespace std;templateT make(T, Args&& ... rest) { //模版参数列表,右值引用调用构造函数 cout << sizeof...(rest)

2016-03-31 10:42:05 814

原创 c++11 学习及测试(虚继承 虚函数时类的内存分布)

下面是一个写的超级好的blog,详细解释了类的内存分布以及虚函数的调用方式。。膜拜之。。虚函数虚继承及类的内存分布下面是我写的一个测试代码。。关于内存分布参见上面链接代码中主要测试了类的内存分布不同时,指针引用强转可能出现的情况,发现现在的编译器真是做的好。指针和引用在类继承体系中强转,对应的地址也会改变以指向对象中对应要转向类型部分的起始地址,只有在先强转成void*再转时才

2016-03-25 15:52:09 466

原创 c++11 学习及测试(shared_ptr, unique_ptr, allocator, function)

只能指针shared_ptr、unique_ptr,构造及使用,make_sheard,可以构造sheard_ptr,但是并没有make_unique。。#include #include #include using namespace std;class SharedStrings {public: SharedStrings(): _strsPtr(make_shar

2016-03-23 22:38:34 700

原创 c++11 学习及测试(constexpr,using,default构造函数,lamada表达式)

constexpr 常量表达式,编译器直接推断值。using代替typedef(using可以指定模版类型别名)#include #include using namespace std;constexpr int new_size(int x) {return 42*x;}templateclass A { T _a;public: A(T a): _a(a)

2016-03-22 11:19:40 776

原创 c++11 学习及测试(auto,decltype,range for...)

花费一星期学校了一下c++11,重看c++ prime感觉第五版的例子比第四版好了很多呀。而且还加入了设计模式之类的东西。也或许是之前看的时候还不知道什么是设计模式T_T。写了一写测试代码,记录一下以备后用。 使用auto和decltype自动推倒类型:注意事项见源码中注释#include using namespace std;int f() { return 10

2016-03-21 18:44:17 377

原创 boost bind及多线程

之前项目中用到学习了一下,今天总结总结bind生成一个仿函数,可以配接任意函数(裸函数,类成员函数,静态成员函数)指定参数传递方式个数。在需要仿函数的地方(accumulate,for_each等)超级好用

2016-03-14 09:08:59 1673

原创 boost mutex lock学习及测试

boost真是博大精深呀这次学习了一下几本的锁和信号量。其中包含:mutex recursive_mutex lock unique_lock basic_lockable_adpator timed_lockable_adpator,其他的adpator应该也都一样,例如(shared_lockable_adaptor等)参看:http://www.boost.org/doc/lib

2016-03-11 10:16:13 875

原创 boost 字符串常用函数初窥

boost/algoththm/string.hpp 中常用函数测试。包含:split cast_conv erase find predicate replace trim regex等#include #include #include #include #include #include #include #include int main(int argc,

2016-03-07 17:07:47 508

原创 google c++编程规范(重点记录)

一:头文件 作用域使用前置声明,减少.h文件的#include数量,减少编译依赖函数输入参数在前(const references),输出参数在后(non-const pointer)include顺序:c,c++,其他库,本项目库函数,类内部使用 using ::foo::bar 或 namespace fez = ::foo::bar::baz减少不必要的构造函数和析构函数

2016-02-16 15:37:07 519

原创 boost 统计分布之正态分布

项目要计算一个联配(alignment)的显著性,用p-value来衡量。随机联配做背景分布,而随机联配是正态的。学习了一下boost的数学分布。太好用了,妈妈再也不用担心我写错公式了。。。下面是测试代码:

2016-01-20 15:24:43 3152

原创 学习记录

编译报错:nanoARCS-molecule.o:(.data+0x0): multiple definition of `FLES::_FLESK'解决方案:因为一个有static成员的类,static成员定义在 .h 文件中,.h被多次包含报错,将成员定义写在单独的 .cpp 中即可

2016-01-14 14:41:54 347

原创 linux 下使用log4cxx服务

写的代码中要使用log日志,师兄用了log4cxx,所以搜了一下。记录下来以备后用一.下载解压http://logging.apache.org/log4cxx/, http://apr.apache.org/apr-1.4.6.tar.gz,  apr-util-1.4.1.tar.gz,  apache-log4cxx-0.10.0.tar.gz1.tar zx

2016-01-14 11:26:08 1070

原创 高端笔试题-Inter美国职位

Inter美国职位的面试题,师兄对c++不是很熟,让我帮忙写。看了题目写了后感觉这职位就是为我量身定做的呀T_T,但是人家PHD only。。。题目是给一个高纬矩阵,维数和每一维的长度都未知,但是每一维的长度都是2^x,即2^d1, 2^d2,..., 2^dn,让对这各矩阵downsample,也就是数据降维。每次降维就是把原矩阵降成 2^(d1-1), 2^(d2-1),..., 2^(d

2016-01-12 09:36:10 517

原创 hdu5603 树状数组

bestcode的题目感觉挺巧妙的,给一些区间(n 尝试了两种裸的线段树都超时了。第一种是 对于每组点,首先加点到树状数组,然后对于每个区间求该区间中的点数,大于0则计数。时间为O(n*m) 跪了。。第二种是 用lazy线段树,每个节点放覆盖该节点表示范围的区间的标号。这样初始化将所有区间加入线段树。对一每个组查询每个点,从根节点范围开始查询该点路径上经过的区间,用set保证唯一。时间

2015-12-30 09:46:01 392

原创 more effinctive c++(operator+=)

#include using namespace std;class A{public: A(int a=0): _a(a) { cout << "construct" << endl; } A & operator += (const A & x) { cout << "operator +=" << endl; _

2015-12-20 22:47:14 343

原创 more effective c++(临时对象的返回值优化)

#include using namespace std;class A {public: const A operator + (const A & x) { // 返回const对象 A re(_a + x._a); cout << "operator + " << endl; return re; } A(int

2015-12-18 23:09:31 356

原创 画图工具使用gnuplot&graphviz

gnuplot 画简单分布图。工程中混合高斯模型看效果要用 记录一下画出类似下面图一#!/bin/bashif [ $# != 1 ]; then echo "Usage: $0 dir" exit 0firm *.datarm *.jpgdir=$1files=`ls ${dir}`i=1for file in ${files}do file

2015-12-18 15:27:25 1245

原创 hdu5569 RMQ

#include #include #include #include #include #include #include #include #include #include #include #define LL long long#define PB push_back#define N 50050using namesp

2015-12-13 09:56:54 285

原创 混合高斯模型&AIC-BIC挑选中心个数

实验室项目中要把数据按正态分布分成几类,但是有不知道有几类,估计不超过三类。然后就用了BIC准则选择类个数,效果出奇的好  哈哈哈哈GMM初值对结果会有很大影响,按数据min,max均分正态的均值,然后用整体数据的方差作为初始方差  完美的解决了这个问题。可能是我们数据本身的原因。研一学的总算用上一点  好开心const static int MAX_ITERATOR = 1000;

2015-12-07 10:29:34 6256

转载 getopt_long使用方法

看开源代码 感觉这以后总会用到,写的也简洁static const char* shortopts = "p:o:m:d:g:b:a:r:x:l:sv";enum { OPT_HELP = 1, OPT_VERSION, OPT_VALIDATE, OPT_EDGESTATS, OPT_EXACT, OPT_MAXINDEL, OPT_TR, OPT_MAXEDGES };static

2015-11-18 14:50:39 349

原创 师兄的vim配置(据说公司的人都用这个)

" An example for a vimrc file."" Maintainer: Bram Moolenaar " Last change: 2002 Sep 19"" To use it, copy it to" for Unix and OS/2: ~/.vimrc" for Amiga: s:.vimrc" for MS-DOS and Wi

2015-11-18 10:40:27 417

原创 c++ 线程池

项目要多线程化,写生产者消费者模型。想到很久以前看过线程池, 所以就写写熟练一下参考 http://blog.csdn.net/kankan231/article/details/24499947/***********************************任务接口,抽象类 task.h***************************************/

2015-11-04 11:19:47 356

原创 more efficitive c++(prefix postfix and operator new)

知识点:1,prefix:increment and fetch  postfix:fetch and increment2,前值和后置的标准写法,见代码(返回值!!!)3,new分为两步  一,调用operator new分配空间 二,调用pleasement new构造对象。operator new要用operator delete释放#include #includ

2015-11-04 09:16:52 545

原创 hdu5542 树状数组优化dp

南阳比赛的题目,队友一发AC,我也来试试题意很容易想到n^3的动态规划,dp[i][j]表示到i位置取j长度的种类,这样dp[i][j] = sum( dp[k][j-1], iff a[k] #include #include #include #include #include #include #include #define N 1005#define MOD 10

2015-11-02 09:49:15 1334

原创 more effective c++(cast pleacementNew explicit)

之前看的书写的代码都没有保存,以至现在都找不到了。还是保存一下吧。。以后还可以拿来看前四章,类型转化 指针操作多态数组 隐士类型转化。代码中稍许注释,仅限自己看懂。。。#include using namespace std;class A { int a;public: A(int aa = 0):a(aa) { } void updateAndSho

2015-10-30 09:35:17 291

原创 测试 unistd.h 中的getopt

测试 getopt全局数据:opterr: 默认值1 置0不输出错误信息(没有指定的参数、要求有value的参数没设置value)optarg: char* 类型,指向key对应的value,遇未设置或开关参数为NULLoptind:下一个要处理的argv下标getopt返回int表示找到的的key字母,如果没有在optstring中则返回?输出error信息。没有“-”开头则

2015-10-29 16:14:33 480

原创 Makefile

autogen.shconfigune.ac //修改 缺少库要自己加Makefile.am2078  mkdir test 2079  cd test/ 2080  ls 2081  cp ../ARCS2/configure.ac ./ 2082  ls 2083  cp ../ARCS2/autogen.sh  2084  cp ../ARCS2/

2015-10-28 19:13:47 333

原创 工程中的网络流

赵程同学问我个他项目中的问题让我突然觉得搞的算法还是蛮有用的,题目的这样的。求一个01矩阵,满足每行的1数和每列1数为给定值。思路是:先按行填好1,然后移动来满足列的要求。移动时要保证每个点只能移动的一个位置,一个位置只能接受一个移动。网络流建6层节点来满足这些约束要求第一层原点到第二层列表示 该列要流出多少1第二层列 到 第三层 表示列可以流到的行,位置为1才可以流出(每列都对应所有

2015-10-28 18:18:59 415

原创 hdu 2586在线LCA RMQ

题意很明显是LCA,dis[a]+dis[b]-2*dis[LCA(a, b)]。第一次写RMQ,下起来也是蛮简单的。学会了在线LCA,哈哈哈哈#include #include #include #include #include #define N 40010using namespace std;vector > adj[N];int dis[N], vi[N<<1], d

2015-10-27 09:28:06 333

原创 hdu4258 斜率优化dp

参考下面文章http://blog.csdn.net/balloons2012/article/details/7912296感觉最重要的是 和当前位置有关的斜率,随下表递增单调。。这样凸包才可以求得最优解#include #include #include #define N 1000010#define LL long longusing namespace std;s

2015-10-23 08:53:21 267

原创 spoj375 树链剖分

树链剖分就是线段树在tree上的应用,把边标号然后存入线段树,支持区间操作。标号方式使用重边的方式可以使根到任意叶子的链数少于log n。上代码!!!第一道树链剖分  还是有点小激动的#include #include #include #include #include #include #include #include #include #define N 1001

2015-10-02 14:49:16 257

原创 hdu5452 离线最近公共祖先

题意是将一颗树cut一条边成两棵树,求生成的两棵树之间的连接边的数目。对于每条不是树上的边, a节点加1, b节点加1,LAC()

2015-09-23 11:17:03 793

原创 hdu5442 后缀数组

第一道AC的后缀数组,总算也是深入理解了各个数组的意义height数组连续>=length,就说明两个顺序相同,保证字母序最大的前提下,先开始位置小 再顺时针优先于逆时针#include #include #include using namespace std;const int N = int(2e5)+10;inline int max(int a ,int b){

2015-09-18 21:41:57 342

原创 hdu5446 卢卡斯+中国剩余定理

一道题集合了卢卡斯,中国剩余定理,费马小定理,扩展欧几里德  也是挺厉害的。卢卡斯求得摸线性方程组,在用中国剩余定理解,会爆long long,用扩展加法#include #include #include #include #include #include #include #include #define N 100005#define P 105using n

2015-09-18 21:35:14 382

原创 gdb调试

gdb ./programset argsl listr runc continue to next break pointb num/function name set break pointn next lines next step, go into functionfinish jump out a functionp printinfo b vie

2015-08-05 08:50:41 250

文本情感分析

通过计算机技术,自动分析文本、图像或视音频等对象所包含的情感倾向及其强度 •例如:正面或负面、喜欢或讨厌、快乐或悲伤、愤怒和恐惧等 情感计算的分类 •主观性(Subjectivity) –主观性、客观性和中性 •情感倾向(Orientation) –正面(褒义)、负面(贬义)和中性

2013-07-30

空空如也

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

TA关注的人

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