zoukankan      html  css  js  c++  java
  • C++ vector清空元素的三种方法

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    //STL vector的几种清空容器(删除)办法
    
    void test()
    {
        vector<int> vecnum;
        vecnum.push_back(1);
        vecnum.push_back(2);
        vecnum.push_back(3);
        vecnum.push_back(4);
        vecnum.push_back(5);
        vecnum.push_back(6);
        vecnum.push_back(7);
    
        //打印vector的大小和容量
        cout << "old: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl;
    
        //1. clear(),清空元素,但不回收空间
    
        //vecnum.clear();
    
        //2. 使用 erase循环删除,结果同上
    
        //vector<int>::iterator it;
        //for (it = vecnum.begin(); it != vecnum.end(); )
        //{
        //    //注意使用erase()方法时,迭代不要随意的++
        //    it = vecnum.erase(it);
        //}
    
        //结论:erase在每次操作时,迭代器指针会整体前移1,就是每次都会移动全部数据,所以vector不适合做频繁删除的容器
    
        //3. 最简单的使用swap,清除元素并回收内存
        //3.1 写法一
    
        //vector<int>().swap(vecnum);
    
        //3.2 写法二
        vecnum.swap(vector<int>());
    
        //打印vector的大小和容量
        cout << "last: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl;
    
    }
    
    int main()
    {
        test();
        getchar();
        return 0;
    }
  • 相关阅读:
    bootstrap模态框
    css 禁止选中文本
    Python Flask Tornado
    JS canvas标签动态绘制图型
    JS 跳转页面
    JS 计算器
    JS
    柱状图中最大的矩形
    在不使用第三个变量的情况下交换两个数的值
    springboot配置静态资源访问的2种方式
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/9338681.html
Copyright © 2011-2022 走看看