说我有一个标准集装箱类:用std :: move()释放内存?
class Library{
std::vector<Book> books;
public:
void putOnFire(){
books.clear();
}
};
的常用方法来清除容器是“清除”,但大多数代码不“兼容STL”这么多集装箱(第三方)可能不有一个“清晰”的方法。然而,如果他们有移动语义,我可以使用std :: move右键?
void putOnFire(){
auto p = std::move(books); //books cleared when p out of scope
}
这是编写最通用的可能的代码,它也适用于不是带有“清除”方法的STL容器的东西。
如果您有一个带有标准容器的类,那么该容器将具有标准接口。 –