Colin's Blog

Recent content on Colin's Blog

马上订阅 Colin's Blog RSS 更新: https://blog.oyyko.com/index.xml

C++ Note 2

finalwind42@gmail.com (Oyyko)
2021年11月28日 08:00

本文是我的C++笔记的第二篇My Second C++ Note;

vector.clear()

vector.clear()并不释放数组,其会调用data[0]...data[size-1]的析构函数。vector在析构的时候会先调用clear()然后释放数组例如

1    vector<int> x{1, 2, 4};2    cout << x.capacity() << x.size() << endl; // 3 33    x.push_back(10);4    cout << x.capacity() << x.size() << endl; // 6 45    x.clear();6    cout << x.capacity() << x.size() << endl; // 6 0
 1 2class World 3{ 4public: 5    World() 6    { 7        cout << "World()!\n"; 8    } 9    ~World()10    {11        cout << "~World()!\n";12    }13};1415int main()16{17    vector<World> v(3);18    cout << "AAA\n";19    v.clear();20    cout << "BBB\n";21}

这个会输出

1World()!2World()!3World()!4AAA5~World()!6~World()!7~World()!8BBB

剩余内容已隐藏

查看完整文章以阅读更多