std::vector<std::vector<Point2d> > components;
Point2d是一个结构:
struct Point2d {
int x;
int y;
};
std::vector<Point2d> tmp;
components.push_back( tmp );// What does this line do?
我知道问题在于我对c ++向量的理解。 据我所知:在上面的代码中,组件是向量的向量。内部矢量是Point2d类型。外部矢量组的内部矢量类型。
在上面的代码中.. Components.push_back(tmp)呢?
答案 0 :(得分:1)
components
的大小增加1. components
的最后一个元素是Point2d
的向量。此向量是从tmp
复制的,它是空的。在push_back
操作期间,向量components
可能需要重新分配存储,这可以复制其元素并使迭代器无效。
答案 1 :(得分:1)
此行将<{em}}向量推送到向量tmp
向量的末尾。
Components
是Components
,位于std::vector<std::vector<Point2d> >
的每个索引处,您可以访问Components
。
也就是说,如果您std::vector<Point2d>
push_back
(std::vector<Point2d>
)成为空的tmp
,则Components
的第一个元素将是Components
向量。
您可以使用tmp
访问此向量。