我在用
std::vector<std::vector<int>> S; 但问题也适用于嵌套的任何其他维度.
要从内容中清除内容S,从效率/内存的角度来看,是否足以调用S.clear();或首先应该clear是存储容器,在这种情况下std::vector<int>然后S.clear();是:
std::vector<std::vector<int>>::iterator iter;
for (iter = S.begin(); iter != S.end(); iter++) {
iter->clear();
}
S.clear();
Run Code Online (Sandbox Code Playgroud)
clear()不需要调用嵌套向量.当你调用clear()最外面的向量时,它将破坏向量中的每个元素.这将反过来破坏任何嵌套的向量.
std::vector 是一种RAII类型,因此只要您在其中存储RAII类型,它就会做正确的事情,因为类型会自行清理.