確切的含義如下。在C++中沒有真正的2D矢量,但有std::vector<T>
包含std::vector<T>
。
如果你聲明一個載體std::vector<int> vec(10)
你有一個包含10個元素的向量。所以vec.size()
是10.
如果你聲明std::vector<std::vector<int>> vec(10, std::vector<int>(10))
你有一個有10個元素的向量,每個元素包含一個包含10個元素的向量。因此vec[0]
是std::vector<int>
類型。
如果你想知道這個向量(含義是vec[0]
)包含多少元素,你可以很容易地做到vec[0].size()
。
如果您想要計算元素的總數,則需要計算vec
中包含的矢量數與每個這些矢量包含的元素數的乘積。因此vec.size()*vec[0].size()
。
讓斷定:
我們有std::vector<std::vector<int>> vec(10,std::vector<int>(10))
:
- 數量的行(的
std::vector<int>
包含在vec
數):vec.size()
- 列數(包含在每個元素的數量
std::vector<int>
):vec[0].size()
- 元素總數:
vec.size()*vec[0].size()
參考:http://cn.voidcc.com/question/p-dpnflznn-u.html