我正在使用
std::vector<std::vector<int>> S;
,但该问题也可以应用于嵌套的任何其他维度。
要从S
中清除内容,从效率/内存的角度来看,足以调用S.clear();
还是应该首先clear
存储的容器(在这种情况下为{{1 }},然后将std::vector<int>
设置为:
S.clear();
答案 0 :(得分:6)
不需要在嵌套向量上调用clear()
。当您在最外层向量上调用clear()
时,它将破坏向量中的每个元素。反过来,这将破坏所有嵌套向量。
std::vector
是一种RAII类型,因此,只要将RAII类型存储在其中,它就会做正确的事,因为这些类型会自己清除。
答案 1 :(得分:1)
只需在最外面的容器上调用th,
td {
padding: $table-cell-padding;
vertical-align: middle;
border-top: $table-border-width solid $table-border-color;
}
。所包含容器的析构函数将自动清理其空间。唯一需要注意的是,如果嵌套下方某处拥有原始指针。如果您有执行此操作的代码,只需将其更改为使用任何类型的智能拥有指针,按值拥有对象或容器嵌套的另一级别而不是原始指针。
答案 2 :(得分:0)
为确保您确实释放了内存,您可能需要执行以下操作:
std::vector<std::vector<int>>().swap(S);