說我有一個標準集裝箱類:用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容器的東西。
如果您有一個帶有標準容器的類,那麼該容器將具有標準接口。 –