如何在C++中声明向量的固定大小向量?固定大小向量的C++向量
例如:
vector of vectors with N elements.
不是这个:
vector<vector<int> > v(N) //declares vector of N vectors
如何在C++中声明向量的固定大小向量?固定大小向量的C++向量
例如:
vector of vectors with N elements.
不是这个:
vector<vector<int> > v(N) //declares vector of N vectors
std :: array是你的朋友在这里。
http://en.cppreference.com/w/cpp/container/array
例如,声明向量的向量,其具有N个元素,则可以
typedef std::array<int, N> N_array;
然后使用
std::vector<N_array>
请注意,std :: array是C++ 11。如果你使用C++ 03,请使用[Boost.Array](http://www.boost.org/doc/html/array.html)。 –
没有必要typedef。 'std :: vector
@JanHudec,你是完全正确的。这里的Typedef只是为了使语法稍微简单一些。 –
你可以使用std ::数组:
std::array<int, 10> myNumbers;
唯一不好的一面,这是你可以看不到有多少“积极”的因素,因为你不会推回去。你可以像普通(但安全)的数组一样使用它。
如果希望有固定大小的vector
,最可能你不需要一个!改为使用std::array
。
但你仍然坚持要有一个..
vector<vector<int> > vecOfVec(NumberOfVectors);
for (int i = 0 ; i < NumberOfVectors; i++)
vecOfVec[i].resize(NumberOfElementsInVector);
是否“固定大小的矢量”必须是一个'的std :: VECTOR'? –
使用std :: array –
Ben
http://www.boost.org/doc/libs/1_55_0/libs/multi_array/doc/user.html – oakad