确切的含义如下。在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