Delete all items from a c++ std::vector

后端 未结 9 1233
陌清茗
陌清茗 2020-12-04 09:42

I\'m trying to delete everything from a std::vector by using the following code

vector.erase( vector.begin(), vector.end() );

9条回答
  •  無奈伤痛
    2020-12-04 10:15

    class Class;
    std::vector vec = some_data;
    
    for (unsigned int i=vec.size(); i>0;) {
        --i;
        delete vec[i];
        vec.pop_back();
    }
    // Free memory, efficient for large sized vector
    vec.shrink_to_fit();
    

    Performance: theta(n)

    If pure objects (not recommended for large data types, then just vec.clear();

提交回复
热议问题