Eigen庫中的Map類到底是做什麼的?

2021-08-19 19:27:54 字數 643 閱讀 3877

map類用於通過c++中普通的連續指標或者陣列 (raw c/c++ arrays)來構造eigen裡的matrix類,這就好比eigen裡的matrix類的資料和raw c++array 共享了一片位址,也就是引用。

1. 比如有個api只接受普通的c++陣列,但又要對普通陣列進行線性代數操作,那麼用它構造為map類,直接操作map就等於操作了原始普通陣列,省時省力。

2. 再比如有個龐大的matrix類,在乙個大迴圈中要不斷讀取matrix中的一段連續資料,如果你每次都用block operation 去引用資料,太累(雖然block operation 也是引用型別)。於是就事先將這些資料構造成若干map,那麼以後迴圈中就直接操作map就行了。

實際上map類並沒有自己申請一片空記憶體,只是乙個引用,所以需要構造時初始化,或者使用map的指標。

引申一下,eigen裡 ref 類也是引用型別,armadillo 裡 subview 都是引用型別,

eigen開發人說的

the use 'sub' as a matrix or map. actually map, ref, and block inherit from the same base class. you can also use block.

所以說了這麼多,就一句話 map 就是個引用。

面試中的html doctype到底是什

宣告是指示 web 瀏覽器使用哪個 html 版本進行頁面編寫的指令。要始終向 html 文件新增 宣告,這樣瀏覽器才能獲知文件型別。在 html 4.01 中,宣告引用 dtd,因為 html 4.01 基於 sgml。dtd 規定了標記語言的規則,這樣瀏覽器才能正確地呈現內容。html5 不基於...

Spring中的Ioc DI到底是啥

我們都知道,spring是一款輕量級的ioc框架,spring的核心就是ioc和di,並通過倆者解耦。那麼,ioc di呢?ioc 控制反轉 ioc inversion of control 控制反轉,這裡的控制指把控制權從應用程式中剝離出來。ioc它可以把建立物件和查詢依賴物件的許可權交給ioc容...

類中內容在記憶體中到底是如何分配的呢?

分類 乙個類,有成員變數 靜態與非靜態之分 而成員函式有三種 靜態的 非靜態的 虛的。那麼這些個東西在記憶體中到底是如何分配的呢?以乙個例子來說明 html view plaincopyprint?include iostream.h class cobject void cobject fun c...