c/c++
xceman1997
这个作者很懒,什么都没留下…
展开
-
【Q&A】delete (free)如何知道被删除的数组的元组个数?
当delete某个元素的时候,我们可以想,根据数据的类型,就能够判断需要释放的内存的大小。不过当delete是一个数组的时候,语法是 delete [] p; 并不需要提供数组的元组个数。那么编译器是如何得知这个信息的呢? 上网上搜了一圈,总结成一句话:肯定存在某个地方了,这个地方对程序员是透明的,而且每个编译器的实现不一样。有些帖子说,这个信息存放在被分配内存的“紧前面”,我写了下面的程原创 2012-08-21 17:03:31 · 980 阅读 · 0 评论 -
java codebase的Hadoop应用中使用Darts
背景Darts是双数组的c++ (template)实现,用来存储、查询大规模词表非常方便。缺点是只能够使用“字符串完全匹配”,而不能查询“某个字符串是否是另外一个字符串的字串”这样的需求。如下原因结合起来,促使要在java codebase中使用Darts:1. 词表规模巨大,存储、查询效率很低2. Darts是c++实现,现有Hadoop cod原创 2012-12-19 21:25:00 · 1352 阅读 · 0 评论 -
【重新上本科】关于“static”关键字的点滴
在面试的时候,考察语言基础的时候,有时候会遇到问题“static关键字的作用是什么”,以及相关的问题。这篇文章里面尽可能总结的全面一点。对于c语言。static可以修饰c语言的变量,表示静态变量,有个很cool的(或者和普通变量很不一样)的属性,就是他的生命周期与当前的生命周期一样。典型的场景就是:在函数中定义了static变量,在函数外面还能够引用这个变量。经常用来作计数器。这是原创 2013-03-24 22:15:38 · 1000 阅读 · 0 评论 -
简单尝试windows多线程程序
这两天因工作需要,写了个算法,计算复杂度较高。期望利用多核机器的优势,并行计算,加快运行速度。简单看了看资料,尝试两个小程序。程序一:函数能并行运行就OK。#include #include using namespace std;DWORD WINAPI Fun(LPVOID lpParamter){ cout<<"Fun display" << endl;原创 2013-08-22 18:36:44 · 1391 阅读 · 0 评论 -
【转载】C/C++ Volatile关键词深度剖析
原文地址:http://hedengcheng.com/?p=725发表于 2013 年 12 月 2 日 由 hedengcheng1 背景 12 Volatile:易变的 12.1 小结 23 Volatile:不可优化的 33.1 小结 44转载 2013-12-02 19:36:20 · 1000 阅读 · 0 评论 -
动手实现Logistic Regression (c++)_接口
1. 初衷从前求学的时候,大致了解logistic regression——原理、应用场合,等等。这段时间工作需要,又找了些资料,重新回顾了一下。一直以来我都有个观点:一个机器学习模型,如果没有一行行代码亲自实现过,就谈不上真正了解它。周末在家,啤酒音乐作伴,码了一个简单LR c++实现,贴出来供大家参考。2. 限制LR模型很简单,不过在具体应用的时候,还是有很多tric原创 2014-01-05 12:43:53 · 2084 阅读 · 0 评论 -
【重新上本科】从一道笔试题来看数组和指针的区别(c++)
今天整理笔试题,将来作为我们这些人笔试、面试新同学的参考。题目的来源多种多样,有的有参考答案,有的没有。没有的,我就自己想想,填上去,然后发给大家校对。有道题目我没有做对,是考察c/c++的指针和数组的,组内同学指出后,我又尝试了下、想了想,现在想通了,记录下来。哎,手艺荒废好久,也要时常捡一捡。或者当初就是没弄扎实,那就每天进步一点点。感谢二师兄的指正!题目是这样的:对于sh原创 2014-02-25 00:21:56 · 1351 阅读 · 0 评论 -
【重新上本科】在实际问题中,内存赋值所拖累的效率(c++版本)
这几天和同事们在讨论技术方案,现有的功能、服务已经实现了,主要是后续代码优化和效率提升。code review过程中发现了一个效率瓶颈。故事大概是这样的,同事需要在一大坨的数据中按照某种标准缩小范围,如:数据池有1T数据,我们根据某种条件过滤,满足条件的有1G数据。在这小范围数据集合中,再进一步做数据处理和选择,如:找最小值或者最大值。同事在缩小数据范围的时候,将所有满足条件的数据都存到了一个bu原创 2014-02-27 20:03:08 · 1833 阅读 · 0 评论 -
【转载】C++矩阵运算库推荐
原文地址:http://www.52ml.net/13002.html2014年04月09日 ⁄ 字号 小 中 大最近在几个地方都看到有人问C++下用什么矩阵运算库比较好,顺便做了个调查,做一些相关的推荐吧。主要针对稠密矩阵,有时间会再写一个稀疏矩阵的推荐。Armadillo:C++下的Matlab替代品地址:http:/转载 2014-04-09 19:52:12 · 2789 阅读 · 0 评论 -
尝试cython和openmp
1. 初衷最近学用python,python不愧是为程序员考虑的编程语言,写起来很快很方便,大大节省开发效率。而且,对于小规模程序,运行效率也不错。前两天写了一篇博文《【总结】学用python写程序》,大大地夸奖了python一番。不过这两天,我就受到“诅咒”了。数据规模稍微大一点,python的执行效率的差劲就体现出来了。这两天写的一个程序,尽管在我所知道的范围内,我做了python语言能做原创 2014-05-25 22:01:37 · 4374 阅读 · 0 评论 -
【转载】【数据结构&&算法系列】KMP算法介绍及实现(c++ && java)
原文地址:http://blog.csdn.net/ksearch/article/details/27837847转载 2014-05-31 22:38:39 · 1000 阅读 · 0 评论 -
vistual studio 2012 在本地安装 msdn2013
现在msdn默认都不是安装在本地磁盘上了,要上msdn社区上面去查,当网速比较慢的时候、或者浏览器比较慢的时候,比较费事。作为“老年”码农,还是希望恢复老的方式,就像经典的vistual studio 6.0及以后几个版本那样,将msdn及其索引存到本地,随时查询。现在在本机安装的是vs express for desktop(也就是vistual studio 2012)。至于最新的vs论坛原创 2015-04-26 23:07:44 · 1830 阅读 · 0 评论 -
Protocol Buffer Basics: C++
直接从https://developers.google.com/上copy&paste过来的。This tutorial provides a basic C++ programmer's introduction to working with protocol buffers. By walking through creating a simple example ap转载 2012-12-09 17:33:25 · 887 阅读 · 0 评论 -
【java学习】Jni在hadoop上的使用(中)
上一篇博文里,已经在linux环境下实现单机版JNI的验证。这一篇,进入“阶段二”,将JNI程序放到hadoop上跑通。 这个阶段的尝试我吃了不少苦头,主要是路径问题:hadoop将我写好的jar包分发到每个tasknode上,同时,我们要把.so也分发到相同路径下,并“告诉”tasknode,使得jvm在运行jar包的时候能够找到这个动态库。还是按顺序说。写hadoop程原创 2012-12-05 20:39:23 · 2757 阅读 · 2 评论 -
【Q&A】getline读取文本文件的问题
很多时候,我们用getline函数读取文本文件的每一行,留待以后进行处理(如:用istringstream对象解析行中的内容),代码片段如下:ifstream in ("Test.txt");if (!in)return ;string sLine;while (getline (in, sLine)){// do s原创 2012-08-22 11:57:29 · 2210 阅读 · 0 评论 -
【Q&A】istringstream 重新设定输入字符串问题
需求是这样的:很多时候,我们会从文本文件中读取一行内容,并用流的方式对这行内容进行解析。从文本中读取某一行,用getline就很好完成,然后将这一行内容的string作为初始化参数,初始化istringstream对象,对istringstream对象用流的方式进行解析。典型的代码是这样的:string sLine;while (getline (in, sLine)) // i原创 2012-08-21 22:08:14 · 1754 阅读 · 0 评论 -
【Q&A】getline读取行的行尾处理
windows和linux对文本文件的行尾有不同的约定。在windows系统中,行尾包含了两个字符,回车(carriage return, '\t')和换行(line feed, '\n')。这两个字符来自于从前的电传打字机,分别表示将写位置重新定位在首端,并跳转到下一行。在linux和unix、以及mac系统中,只保留了换行符,而没有回车符。这也是一些mac上的文本文件到windows系统上就无原创 2012-08-24 16:26:26 · 2383 阅读 · 0 评论 -
【Q&A】stl容器去除重复的元素
经常会有这种情况,例如有几个不同来源的词表,先后放入到一个容器中(如vector中),要求去除容器中重复的词条。通常就是两步:1. 排序;2. 去除相邻的重复节点。对于2,我从前都是用文本编辑器(ultraedit)去重,没有用程序做过。现在写了下,主要是理解unique函数。关键代码如下:// 1. sort the itemssort (ItemVec.begin(原创 2012-08-24 22:54:43 · 1288 阅读 · 0 评论 -
【Q&A】去除stl vector中特定位置的多个元素
我个人常用stl vector来构建基础数据结构,实现一些算法。有时候会有这样的需求,就是我要删除满足某些条件的vector中的元素,例如:删除所有大于零的元素。这就需要遍历整个数组,找到这些元素,并且删除。有两种策略。直观的一种是在遍历的过程中,判断当前元素是否符合删除条件,如果符合,则调用vector的erase函数进行删除,注意这时候数组内容发生变化,iterator原则上失效,会影响到遍历原创 2012-09-15 15:46:14 · 2489 阅读 · 1 评论 -
【Q&A】去除stl vector中特定位置的多个元素续_remove算法初探
这个是上一篇“去除stl vector中特定位置的多个元素”姊妹篇,有网友建议我用一下算法库中的remove和vector的函数erase。实现了一下,代码如下:bool Play::RmSomeElementsInVec3 (vector & NumVec, int iVal){ if (NumVec.empty()) return false; vector::it原创 2012-09-17 00:14:01 · 1568 阅读 · 0 评论 -
【资源】c++资源积累(积累中......)
Google C++ Style Guide: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml原创 2012-10-16 16:19:42 · 794 阅读 · 0 评论 -
【基础知识】使用Darts
Darts是double array的一个c++ template实现。经过企业级大规模数据实践检验,其效率远高于stl中的hash_set、hash_map等。不过Darts是用c++ template实现的,初看起来,会被他的模版参数、以及函数参数等吓到,不知道怎么用。我这里写了个简单的小例子,来看一下它的使用。基本使用情景就是我有一个词表,将这个词表load到内存,转换成double a原创 2012-12-04 20:17:49 · 5010 阅读 · 0 评论 -
【java学习】Jni在hadoop上的使用(下)
有了前两篇博文的铺垫,这一篇,进入“阶段三”,即在hadoop中调用.so动态库,在动态库中读取文件。其实苦头都在前面吃了,这部分相对很顺利。首先,在动态库.so的java wrapper中增加一个函数接口Init,用来load词典文件:package FakeSegmentForJni;/** * * This class is for verify原创 2012-12-07 20:29:08 · 1947 阅读 · 4 评论 -
【java学习】Jni在hadoop上的使用(上)
遇到的需求很简单,我们有一个性能很好的分词器,用c++实现的,现在想在java写的hadoop的程序中使用它,咋办?如果只是使用hadoop,用c++ pipes实现hadoop程序,再调用c++实现的分词器(源代码调用或者动态库调用)就很简单,不存在上面的问题。不过,由于Legacy原因(其实就是种种原因),不能放弃java版本的hadoop程序,才会有以上问题。上网上搜了一原创 2012-12-04 23:23:58 · 2864 阅读 · 0 评论 -
在win7 + vs express for desktop中安装stlport和boost库
一、安装stlport stlport是将sgi的stl库平移到各个平台上。sgi的这个库的特点就是效率非常高。boost在这个库上面运行要比vs自带的stl库效率高。所以我们首选安装stlport。下载stlport:http://sourceforge.net/projects/stlport/ 最新版本是5.2.1 放到C盘根目录下面,解压。进入”vs2012 x86 native to原创 2015-06-28 22:16:27 · 6500 阅读 · 0 评论