2
是否有C++標準類型用於保存具有恆定大小的矢量?例如,像所有元素類型相同的元組,所以我只需要提供大小作爲模板參數?中等大小的矢量類?
我想具有相同/相似的行爲使用std::vector
時一樣,但類型應儘可能緊湊和高效的作爲原料陣列(因此沒有動態分配,沒有運行時大小信息等)
我更喜歡C++ 03兼容解決方案,所以重複使用std::tuple
是不是我想要的。
以下班級做我想要的嗎?
template<typename T, int N>
struct vec
{
T component[N];
// (+ some logic and accessors like operator[]...)
};
// concrete example:
vec<int,3> myVector;
是否真的從只是說T myVector[N]
(具體的例子int myVector[3]
)有什麼區別?因爲這就是我現在正在做的事情,但我遇到了一些問題,因爲原始數組只是「指針」(+大小信息),不能用作返回值,也不是真正的值傳遞沒有深度複製發生)。
謝謝,所以只是在我的項目中複製這個類讓我開心? (因爲如問題所述,我想要C++ 03兼容性) – leemes
@leemes,還有迭代器和所有東西。 'boost :: array'基本上是一個C++ 03版本。這不是一個標準的類,但它是一個前兆:) – chris
@眼鏡:沒有理由複製它;只需選擇一個提升。由於C++ 11是基於Boost版本的,因此這是未來的保證。 – MSalters