矩阵库eigen的用法(一)————eigen的安装

最近打算研究下结构力学的程序算法,那么肯定要用到的矩阵。网上査了下资料,好像对eigen这个矩阵库都比较推崇。既然大家对这个库这么赞赏有加,那么就来看看这个库怎么用吧。

1.安装使用这个库

首先是这个库的下载的,可以到http://eigen.tuxfamily.org/index.php?title=Main_Page这个页面去下载。下载后的文件夹如图在这里插入图片描述
这个解压缩后的文件夹名需要更改下,改为eigen3,不然会无法使用。
比如将这个文件夹解压缩到D盘目录下
然后在工程属性下添加
在这里插入图片描述
然后就可以用
#include “Eigen/Dense”

2.模板

Eigen是有关线性代数(矩阵、向量等)的c++模板库。我对模板并不了解,这里需要知道一些C++模板的概念和知识。下面是我转载别人对模板的介绍,我觉得写得不错。
转载地址:http://www.cnblogs.com/gw811/archive/2012/10/25/2738929.html

模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。
模板是一种对类型进行参数化的工具;
通常有两种形式:函数模板和类模板;
函数模板针对仅参数类型不同的函数;
类模板针对仅数据成员和成员函数类型不同的类。
使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现,要实现这些类型的交换就要重新编写另一个swap函数。使用模板的目的就是要让这程序的实现与类型无关,比如一个swap模板函数,即可以实现int 型,又可以实现double型的交换。模板可以应用于函数和类。下面分别介绍。
注意:模板的声明或定义只能在全局,命名空间或类范围内进行。即不能在局部范围,函数内进行,比如不能在main函数中声明或定义一个模板

一、函数模板通式

1、函数模板的格式:

template <class 形参名,class 形参名,…> 返回类型 函数名(参数列表)

{

函数体

}
其中template和class是关键字,class可以用typename 关键字代替,在这里typename 和class没区别,<>括号中的参数叫模板形参,模板形参和函数形参很相像,模板形参不能为空。一但声明了模板函数就可以用模板函数的形参名声明类中的成员变量和成员函数,即可以在该函数中使用内置类型的地方都可以使用模板形参名。模板形参需要调用该模板函数时提供的模板实参来初始化模板形参,一旦编译器确定了实际的模板实参类型就称他实例化了函数模板的一个实例。比如swap的模板函数形式为

template void swap(T& a, T& b){},

当调用这样的模板函数时类型T就会被被调用时的类型所代替,比如swap(a,b)其中a和b是int 型,这时模板函数swap中的形参T就会被int 所代替,模板函数就变为swap(int &a, int &b)。而当swap(c,d)其中c和d是double类型时,模板函数会被替换为swap(double &a, double &b),这样就实现了函数的实现与类型无关的代码。
2、注意:对于函数模板而言不存在 h(int,int) 这样的调用,不能在函数调用的参数中指定模板形参的类型,对函数模板的调用应使用实参推演来进行,即只能进行 h(2,3) 这样的调用,或者int a, b; h(a,b)。

#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
using namespace std;

template<class T>
void Swap(T &x,T &y) //注意用大写的Swap,避免重名
{
   
  T temp;
  temp=x;
  x=y;
  y=temp;
}

int _tmain(int argc, _TCHAR* argv[])
{
   
  int n=1,m=2;
  Swap(n,m);
  float f=1.1,g=1.2;
  Swap(f,g);
  cout<<n<<','<<m<<endl;
  cout<<f<<','<<g<<endl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值