利用C template,請問我該如何設計這個向量類(Vector)?

時間 2021-05-29 23:44:50

1樓:

不要把簡單問題複雜化。

不要把 N 放到模板引數裡。一共就仨還用模板,不是強行把問題複雜化麼。

Vector2 3 4,然後把共用的操作做成非成員函式,放到 detail 裡面完事。什麼繼承。。。千萬不要把問題複雜化

2樓:

可以結合他的父類矩陣看:

特化成仿射矩陣可以參考:

/// 仿射變換中的向量或點dim: Dimensions of vector or dot向量或點維度

/// Titem: Type of item within vector or dot向量項或點項型別

template < z_size_t dim, typename Titem >

class affine_vector

: public vector< dim + 1, Titem > {

3樓:XZiar

我的建議是設計乙個向量基類,用來做通用的運算(常用運算都要求參與運算的向量維度相等吧?)

其中包括xyzw(至少包含四個元素)。

然後繼承出來vec2、vec3等根據要求有選擇性的提供訪問的範圍。

三維向量當作四維來儲存應該沒有問題,內部運算反正都按照下標來。

為了效能,四維以內甚至八維以內的向量還可以通過專門的優化手段去計算。

比如:temeplete

N>class

ALIGN16

VecBase;};

VecBase();

};然後四維的vec4可以這樣:

class

ALIGN16

Vec4

:public

VecBase

<4>}三維vec3可以這樣:

class

ALIGN16

Vec3

:public

VecBase

<3>}拿我之前的設計隨手改了一下,我覺得應該是沒問題的……

4樓:不吃油條

粗暴一點的(如果不是非得要用template的話#define x a[0]

#define y a[1]

#define z a[2]

#define w a[3]

請問我該辭職麼?

楊弘敏 如果離職影響很大,那就先不要動。最起碼你要準備三個月的花銷。另外,就我知道的乙個初中畢業的小妹妹,每天睡五六個鐘,之前流水線上12個小時,下班後自學英語,現在已經是一家大公司的銷售經理。可能你不會逼自己到這種程度,但你想要得到一樣東西,必須投入相應的資源。 海綿 看了描述,建議還是在銀行吧,...

請問,我該辭職嗎?

乙個孤僻的人 看得出你沒有明確的下家,甚至連思路都沒有。裸辭的結果大概率不會有好結果。問問你自己具體能做出什麼與眾不同,不浪費時間,特別對社會有貢獻,自己還有滿足感的事情呢?大概率沒有吧。所以年輕人都有的問題你給表達出來了,眼高手低,自視甚高。如果我說錯了,希望你能取得很大的成就,拿出很好的成績。本...

請問我該怎麼讀大學?

阿語 成績是很重要的,畢竟評獎的第一道門檻就是學測 我們是這麼叫的 然後組織的活動要多參加,部門社團該加加,綜測 叫法同上 就來了,而且還能交到志同道合的朋友。還有!體育一定要上去!嗚嗚嗚我體育不行,學測第二也沒用!現在天天晨跑晚跑 哭 另外一定要多嘗試新事物,畢竟大學是你最後能犯錯的地方了。人際交...