C/C++
文章平均质量分 86
冯西的技术博客
这个作者很懒,什么都没留下…
展开
-
error LNK1123: failure during conversion to COFF:问题解决
今天在build一个程序的debug版本时遇到了这个问题。令我奇怪的是,如果是release版本就不会有这个问题,debug的就会有这个问题。让我很是困惑,上网找了一些资料,主要是有这么几种方法:1. 修改如下的配置Project Properties-> Configuration Properties-> Linker (General)-> Enable Incremen原创 2015-11-29 15:52:01 · 2034 阅读 · 0 评论 -
C++ new placement语法
今天在学习boost的共享内存时,看网上的一段代码。主要实现的功能是一个进程写一份跟踪数据至共享内存缓存区,另一个进程一个接一个打印出来。第一个进程写跟踪数据,然后等待,直到另一个进程打印这份数据。为达到此目的,我们可以使用两个条件变量:第一个用于阻塞发送者直到第二个进程打印出此消息,第二个用于阻塞接受者直到缓存区中有数据供打印。但是,下面的代码让我感到很是困惑://Map the who原创 2017-03-03 20:20:01 · 1137 阅读 · 0 评论 -
boost interprocess_condition解析
boost中的interprocess_condition类是一个放在共享内存或内存映像文件中的条件变量。interprocess_condition主要的public成员函数有:1. void notify_one()如果有一个线程正在等待本线程(*this),改变那个线程到已准备好的状态。否则没有任何作用。2. void notify_all()改变等待本线程(*this)翻译 2017-03-04 13:18:33 · 1734 阅读 · 0 评论 -
boost学习
boost::scoped_ptr: 用于确保动态分配的对象能够被正确地删除。boost::interprocess::interprocess_mutex: 一个非递归的、匿名的互斥锁,可以放在共享内存或者内存映像文件中。boost::scoped_lock: 你可以确保在任何情况下离开执行范围都会解锁mutex.注意,这不仅仅实说你可能忘记调用unlock();并且,在你的mute原创 2017-02-26 10:17:22 · 392 阅读 · 0 评论 -
C++ 11相关知识学习
std::mutexstd::mutex定义在头文件中。mutex类是一个同步原型,用来保护共享数据被多个线程同步访问的同步。mutex提供互斥,非递归拥有权语义:一个调用线程拥有一个mutex。从它成功调用lock或者try_lock,知道它调用unlock。当一个线程拥有一个mutex,所有其它的线程将如果想要尝试获得mutex的拥有权,则会接收一个false,或者被b原创 2017-02-25 17:56:19 · 383 阅读 · 0 评论 -
stringstream
又是利用stringstream来将string转换到其它数字类型是很方便的。stringstream的使用和iostream的使用很类似,学习上来说并不是一个负担。stringstream既可以用来读取string,也可以用来写入string。它主要作用于string buffer,但是并没有真正的I/O渠道。stringstream类的基本函数有str(), 放回在stri翻译 2017-02-26 14:00:18 · 609 阅读 · 0 评论 -
thread中join和detach的区别
C++中的thread对象通常来说表达了执行的线程(thread of execution),这是一个OS或者平台的概念。当thread::join()函数被调用,调用它的线程会被block,直到线程的执行被完成。基本上,这是一种可以用例知道一个线程已结束的机制。当thread::join()返回时,OS的执行的线程已经完成,C++线程对象可以被销毁。当thread::detach()函数翻译 2017-05-04 19:11:27 · 63095 阅读 · 0 评论 -
boost相关
Linux平台下的boost安装:http://www.cnblogs.com/huliangwen/p/5424033.html原创 2017-12-22 17:06:03 · 327 阅读 · 0 评论 -
Linux中的共享库和gcc
对于程序员来说库(libraries)是必不可少的一个工具。可以将预先存在的代码进行编译,然后直接使用。它们经常提供通用的功能,像链表或者二叉树等可以用来存放各种数据,或者特定的功能像数据库的接口,比如MySQL。大多数大的软件工程包含许多的模块,其中的一些模块可能会在后面别的项目中用到,或者你只是出于组织的意愿想将其独立开。当你有一个重用的,或者逻辑独特的函数集,你将其编为一个库将会是非常有翻译 2016-08-06 17:49:53 · 2442 阅读 · 0 评论 -
指针的引用
为什么会有指针的引用呢?我们假设这样一个问题,如果一个函数的参数是一个指针,而我在该函数中修改了该指针指向的内容,这会发生什么呢?如下所示:void my_func(int *p){ int m = 10; p = &m;}int main(int argc, char** argv){ int n = 2; int *pn = &n; std原创 2017-02-27 19:27:13 · 311 阅读 · 0 评论 -
动态规划学习
1,最长子数组问题dp[i]表示以A[i]结尾的最大子数组的和。这种情况下有两种可能,一、dp[i]只包含A[i];二、dp[i]不只包含A[i],也包含前面的一些数字,至少要包含A[i-1],这种情况下,dp[i]=dp[i-1]+A[i]。所以得到如下dp[i]的递归关系式:dp[i] = max(A[i], dp[i-1]+A[i])同时 ,我们需要得到初始值,也就是dp[0],原创 2016-06-06 21:56:04 · 442 阅读 · 0 评论 -
typedef关键字学习
typedef struct hpp_s* hpp_h;这个里面定义的hpp_h,它是一个指向一个struct hpp_s这个一个结构体的结构体指针。原创 2015-12-03 17:33:52 · 328 阅读 · 0 评论 -
pkg-config使用
pkg-config用来检索系统中安装库文件的信息。典型的是用作库的编译和链接。pkg-config --list-all 可以列出所有可使用的包pkg-config要求库提供一个.pc元数据文件,从这些文件中检索库的各种必要信息,包括版本信息,编译和链接需要的参数等。这些信息可以通过pkg-config提供的参数(如--cflags, --libs)单独提取出来直接供编译器和链接器使用原创 2016-03-05 14:11:11 · 2341 阅读 · 0 评论 -
CXX0025: 错误: 运算符要求类/结构/联合
在Visual Studio调试的时候,需要查看一个变量的值,比如images.size(),当我在监视下面输入这个变量时,显示CXX0025错误。该变量可是在函数中定义的,为什么在调试时显示该值会出错呢?微软官方对这个错误也有专门的解释,“运算符要求结构/联合,采用struct或union类型表达式的运算符应用到非struct或union的表达式。类、结构或联合变量的组成部分必须具有完全限定名。原创 2016-03-07 21:29:32 · 1236 阅读 · 0 评论 -
特征脸(Eigenfaces)
我们给的图像表达的问题在于它的高维度性。一个二维的pxq的灰度图像扩展到一个m=pq维的向量空间,所以对一个100X100像素的图像来说,已经有一个10000维的图像空间了。这对于任何计算来说都是太多了,但是所有的维度对我们来说都是有用的吗?只有在数据上有一些变化时,我们才能做出决定。所以我们要寻找的是占最多信息的部分。Karl Pearson于1901年独立地提出主元素分析(Principal C翻译 2016-03-13 19:01:25 · 3443 阅读 · 0 评论 -
opencv错误列表
1. 编译第一个opencv程序,出现了如下的错误。1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvReleaseImage,该符号在函数 _wmain 中被引用1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvDestroyWindow,该符号在函数 _wmain 中被引用1>openCVTest.原创 2016-03-05 21:06:04 · 20604 阅读 · 4 评论 -
微软2012笔试题之--catalan数
卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。 出栈次序 一个栈(无穷大)的进栈序列为1,2,3,…,n,有多少个不同的出栈序列? 分析 对于每一个数来说,必须进栈一次、出栈一次。我们把进栈设为状态‘1’,出栈设为状态‘0’。n个数的所有状态对应n个1和n个原创 2012-04-09 21:15:45 · 516 阅读 · 0 评论 -
顺时针,逆时针,zigzag矩阵详解
最近对矩阵的研究比较多一点,一来,因为加的几个QQ群里一直有人在讨论这个问题,而且讨论者甚众,看来大家对这个问题还是挺有兴趣的;二来,去年自己去有道的一次面试中就遇到了这样一个问题,很遗憾的是当时并没有答出来,于是与有道失之交臂,感到挺遗憾的。但这还不是全部,因为一年前我曾做过这样一道题,而且还考虑了很久,是一个公司的面试题,到真正需要用的时候反而写不出来了,足见自己学习的不连贯,孔夫子几千年前就原创 2012-03-15 21:27:03 · 2382 阅读 · 0 评论 -
为什么在C++中需要虚函数
我自己是一个C++新手,这里是我对什么事虚函数,以及为什么我们需要它的理解:我们有这样两个类:class Animal{public:void eat() { std::cout << "I'm eating generic food."; }}class Cat : public Animal{public:void eat() { std::cout << "I'm翻译 2016-06-19 17:14:33 · 695 阅读 · 0 评论 -
swig使用介绍
swig是Simplified Wrapper and Interface Generator的简称,它是一个能将C和C++的程序与其他各种高级语言诸如Perl,Python,Ruby和Tcl进行连结的开发工具。swig的官方中文网站:http://www.swig.org/translations/chinese什么是typemaptymemap are an advanced cu...原创 2018-08-01 20:47:50 · 4540 阅读 · 1 评论