Does std::vector.clear() do delete (free memory) on each element?

后端 未结 6 670
梦谈多话
梦谈多话 2020-12-04 08:14

Consider this code:

#include 

void Example()
{
    std::vector list;
    TCHAR* pLine = new TCHAR[20];
    list.push_back(pLine)         


        
6条回答
  •  旧时难觅i
    2020-12-04 08:50

    You could just write a simple template function that does this for you:

    template 
    void deleteInVector(vector* deleteme) {
        while(!deleteme->empty()) {
            delete deleteme->back();
            deleteme->pop_back();
        }
    
        delete deleteme;
    }
    

    Maybe something in here is bad practice but I don't think so. It looks okay to me though comments are always nice.

提交回复
热议问题