c 裡如何理解vector是動態陣列,而這個單詞本義是向量?為什麼這麼叫?

時間 2021-05-29 23:19:23

1樓:d41d8c

對於「動態陣列」最合適的名字大概是dynarray,可惜當年發明STL的時候,dynarray這名字已經被佔了(http://www.

open-std.org/jtc1/sc22/wg21/docs/wp/html/sep94/lib-containers.html

)。所以STL的作者沒辦法才選了vector這個詞不達意的名字。

不過雖然vector沒有「動態」的含義,但是把一維陣列叫做vector是比叫做array(本義是「陣列」)更合適的。早期BCPL似乎也是把陣列叫做vector。

2樓:紅繩會的蚊子

數學上,N維陣列可以看成廣義的N維向量。

因為有array陣列了,它不能改變大小,所以叫靜態陣列;同理,vector就是動態陣列。

所謂靜態動態只是分配好空間能不能改變大小的問題。

array是stack(棧)或者static(靜態)空間,vector是heap(堆)空間。

從容量來說一般 heap > static > stack訪問速度 array >= vector

3樓:

向量就是乙個 N 元組,每一維的值表示在當前維度上的對映。

這個也很好理解,比如在我們所處的三維世界中,對於乙個代表力的向量,我們可以通過建立空間直角座標系,把它分解為在三個方向上的力,然後用三個數值表示,就是 (x, y, z)。

反過來說,乙個具有五個元素的陣列,就是乙個五維空間上的向量在五個維度上對映的數值表示。

C 如何動態決定整型的位數?

熊起 如果建立之前是否這個容器會塞什麼範圍的下標?知道的話就直接用個介面類,不知道就封裝乙個介面類,在收到更大下標時改變型別 class IIndexVecImpl class IndexVec IIndexVecImpl imp 悽臨雨 模板實現乙個演算法函式或類,根據模板引數N 8 16 32 ...

C 模版類如何動態獲取型別?

yc znone 類D不需要是模板 classA class Dtemplate T D A object void T function object object function Function function void go class Avoid setD constD d void ...

如何理解動態規劃狀態轉移方程?

寒山孤影 動態規劃演算法將待求解問題拆分成一系列相互交疊的子問題,通過遞推關係定義各子問題的求解策略,並隨時記錄子問題的解,最終獲得原始問題的解,避免了對交疊子問題的重複求解。 焦yiru 咦 在複習搜到了這個問題所以答一下。動態規劃基本方程包含了三個條件,一狀態轉移方程,二最優值函式,三邊界條件。...