C/C++
文章平均质量分 79
Fivestar_wang
远离家乡奋斗的游子
展开
-
QR分解求矩阵特征值、特征向量 C语言
QR分解求矩阵特征值、特征向量 最近在看一个高光谱图像压缩算法,其中涉及到正交变换,计算正交变换时,需要对普通矩阵求其特征向量。想要在网上找一个现成的程序,可能是我百度的能力不强吧,居然真的没找见。好了废话不多说,下面进入正题。计算特征值整体思路很简单,先使用QR分解求出矩阵特征值,然后利用其特征值求解具体特征值对应的特征向量,进而求出矩阵的特征向量。下面是其C代码实现原创 2014-08-13 20:08:17 · 20585 阅读 · 15 评论 -
C++11多线程——mutex学习
Mutex也称之为互斥量,C++11中与mutex相关的类与函数声明都在头文件中。 一头文件内容简介:Classes1.1 Mutexesmutex mutexclass(class)recursive_mutex Recursivemutex class(class)ti原创 2015-04-16 12:22:56 · 2840 阅读 · 0 评论 -
C++11多线程——lock详解
C++11提供了两种管理锁的类std::lock_guard:与mutex RAII相关,方便线程对互斥量上锁std::unique_lock: 与mutex RAII相关,方便线程对互斥量上锁,相比std::lock_guard提供了更好的上锁和解锁控制一 lock_guard详解lock_guard是一个模板类:templateclass lock_guar原创 2015-04-17 11:37:01 · 11250 阅读 · 1 评论 -
基于C++11 thread 实现线程池
这里基于C++11 thread实现线程池,线程池不可拷贝。1 nocopyable类 不可拷贝基类继承它,派生类不可拷贝,实现如下//nocopyable.h#ifndef NOCOPYABLE_H#define NOCOPYABLE_Hnamespace fivestar{class nocopyable{private: nocopya原创 2015-08-31 10:39:05 · 6757 阅读 · 7 评论 -
C++11多线程——<future>之std::promise学习
Promise对象可保存T类型的值,该值可被future对象读取(可能在另一个线程中),这是promise提供的同步的一种手段。在构造promise时,promise对象可以与共享状态关联起来,这个共享状态可以存储一个T类型或者一个由std::exception派生出的类的值,并可以通过get_future来获取与promise对象关联的对象,调用该函数之后,两个对象共享相同的共享状态(shared state) Promise对象是异步provider,它可以在某一时刻设置共享状态的值 Future对原创 2015-04-18 11:57:45 · 3239 阅读 · 0 评论 -
C++11 多线程学习----std::thread类的简单使用
C++11标准库会提供类thread(std::thread)。若要运行一个线程,可以创建一个类thread的实体,其初始参数为一个函数对象,以及该函数对象所需要的参数。通过成员函数std::thread::join()对线程会合的支持,一个线程可以暂停直到其它线程运行完毕。若有底层平台支持,成员函数std::thread::native_handle()将可提供对原生线程对象运行平台特定的操作。对于线程间的同步,标准库将会提供适当的互斥锁(像是std::mutex,std::recursive_mutex原创 2015-04-15 22:41:38 · 5777 阅读 · 0 评论 -
虚函数原理解析
虚函数原理虚函数的一般实现模型:每个类有一个虚函数表,内含该类中有作用的虚函数地址。每个 对象有一个vptr(虚函数表指针)指向虚函数表如下Person类class Person{public: virtual ~Person(); virtual string& getName(); virtual string& setName();原创 2015-08-27 21:06:36 · 719 阅读 · 0 评论 -
C++内联函数总结
C++内联函数Inline函数,看起来像函数,动作像函数,没有宏的副作用,可以调用它们又没有函数调用的额外开销。多好的内联函数 实际上,获得的比想象的还要多,避免函数调用的额外开销只是它好处的一部分而已。编译器还可以通过最优化机制(被设计用来浓缩那些‘不含函数调用的代码‘的代码),所以当inline某个函数,编译器可能就有能力对它执行语境相关最优化。 但是函原创 2015-08-26 20:17:08 · 881 阅读 · 0 评论 -
C++类型转换
C++类型转换一 隐式类型转换 在C++语言中,某些类型之间有关联。如果两种类型有关联,那么当程序需要其中一种类型类型的运算对象时,可以用另一种关联类型的对象或者值来替代。 Intival = 3.4 + 3; //编译器提示损失精度 加法的两个运算对象类型不同:3.4为double类型,3位int类型。C++不会将两个不同类型的值直接相加,而原创 2015-08-26 20:26:48 · 632 阅读 · 0 评论 -
辨析栈和堆
堆:堆是一个公共空间,分为全局堆和局部堆。全局堆就是......原创 2015-04-03 17:48:52 · 649 阅读 · 0 评论 -
内存充足时,malloc内存分配失败问题
如题,为什么内存充足时,malloc内存分配失败? 首先,在32位平台下,系统最多可管理4G内存,其中2G系统自用,剩下2G可供用户使用,然而在实际分配时,用户可用空间始终小于2G(若有童鞋在如上条件下分配空间 等于或大于2G可以联系我哦,以让我纠正自己的错误)。64位则可以管理好多,有兴趣的童鞋可以自己算下哦!偷笑 那么,这些跟malloc内存分配失败有什么关系呢有什么关系呢?哈哈,问题就在这里,32位平台下就不多说,相信上面的叙述可以解决童鞋们的问题。在64位平台下,童鞋们是不是发现依旧只能分配2原创 2015-01-25 15:08:33 · 5237 阅读 · 0 评论 -
C++读取excel表格
C++读取excel文件1 创建mfc程序(这里以vs2013为例)2 添加读取excel文件用到的类3 添加完成后,找到相关头文件,注释/删除4 再次编译还是有错误5 添加源码(最重要的一步)原创 2014-12-25 11:19:08 · 24419 阅读 · 14 评论 -
C/C++函数指针用法总结
C++函数指针一函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关。举例如下:int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针,只需用指针替换函数名即可:原创 2014-12-02 16:48:05 · 1130 阅读 · 0 评论 -
C/C++ static 用法总结
static用法 a.静态局部变量,成为静态局部变量(拥有记忆功能和全局存储权限) b.静态全局变量(限制对应全局变量被被其他文件调用) c.静态函数 d.静态类成员(标识此成员属于类而非属于某个特定对象)原创 2014-12-04 09:34:28 · 1061 阅读 · 0 评论 -
C/C++静态库创建、导出和使用(图文)
一 Windows库 1 引入库的原因: a.项目的复杂程度大 b.提高代码的利益利用率 2 库的分类 2.1 静态库: *.lib,不能被加载的程序,可以理解为目标程序的归档。 2.2 动态库:*.dll,可以被应用程序加载的程序。 二 静态库 1 静态库的特原创 2014-12-03 10:52:34 · 6141 阅读 · 0 评论 -
C++ MyString类的简单实现
题目:string类的简单实现,本文中此类名为MyString实现思路:1 只要构造函数执行成功(其中pData_不为空)2 构造函数可通过char*,字符串常量构造3 重载运算符=(返回值为MyString),实现拷贝构造函数(深拷贝,返回值为MyString&)4 重载运算符5 实现字符串长度,字符串是否为空函数6 成员变量使用char* pData_保存字符串,使原创 2015-08-30 22:55:35 · 7471 阅读 · 0 评论