犰狳,如何增长vector和得到他的大小?

在我最后一个问题中, Ilmari Karonenbuild议我以离散模式求解拉普拉斯方程。 我正在使用一个网格和每个节点上最近的四个邻居来计算未知的高度。

所以解决的系统可以写成matrix:

A(matrixn×n)* U(向量n,未知)= b(向量n,已稳定)

等待线程/ s直到onther线程/ s结束c ++ linux操作系统

如何检查BLAS和ATLAS是否已经安装

在linux中将犰狳库添加到g ++编译器中

昨天晚上,我环顾networking有关C ++的线性代数。 我的select是犰狳 。 但现在“U”和“B”是std::map :

std::map<std::pair<float,float>,float> b; std::map<std::pair<float,float> U; . . . if(g/*grid*/->getNode(r,c)->status == TO_COMPUTE){ U.insert(std::make_pair(std::make_pair(r,c),g->getNode(r,c)->y)); /*right*/ if(g->getNode(r+1,c)->status == SETTLED) b.at(std::make_pair(r,c)) += g >getNode(r+1,c)->y; /*left */ if(g->getNode(r-1,c)) += g->getNode(r-1,c)->y; /*down */ if(g->getNode(r,c+1)->status == SETTLED) b.at(std::make_pair(r,c)) += g->getNode(r,c+1)->y; /*up */ if(g->getNode(r,c-1)->status == SETTLED) b.at(std::make_pair(r,c-1)->y; }

我想我会得到“U”的大小来创buildarma::vec并用std::iterator来parsing整个地图,以在我的arma::vec传递值。 所以我想知道如何增长一个arma::vec我正在寻找像std::vector::push_back() ,然后我会replace我的std::map 。 另外我怎样才能得到一个arma::vec的大小?

注1:图中显示了轮廓和计算值的点,未知值的网格在y = 0时,当下轮廓在y = -0.2,上轮廓在y = 0.8时

注2:当我的小(LINUX)程序准备就绪时,我将在我的bitbucket上发布代码,作为使用离散拉普拉斯算子的一个非常小的例子

2013年11月26日更新:

你可以在这里获得代码的链接

看犰狳的文件 。 例如,可以使用X.n_elem来获取向量X的长度。要在保存数据的同时调整向量的大小,请使用.resize() 。 要将行或列添加到矩阵,请使用.insert_rows()或.insert_cols() 。

请注意,调整性能关键循环内的对象(无论它们是犰狳矩阵/矢量还是std :: vector)效率不高。 预先制定正确的尺寸要好得多。

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...