zoukankan      html  css  js  c++  java
  • vector基本用法

    Vector作为STL容器中的一员,使用频率非常高,因此对其基本用法和实用技巧进行记录,便于后期查询使用。

    基本用法 

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    /*
        empty()            判断vector是否为空
        size()            获取vector中元素的个数
        clear()            清空vector
        erase()            删除vector中指定内容的元素
        push_back()        尾部插入元素(效率高)
        pop_back()        尾部删除元素(效率高)
        insert()        指定位置插入元素(效率低)
        sort()            排序
        reverse            反转
    */
     
    int main()
    {
        vector<int> arr;
        
        arr.push_back(6);
        arr.push_back(7);
        arr.push_back(5);
        arr.push_back(3);
        arr.push_back(4);
        
        arr.pop_back(); // 删除4
        
        sort(arr.begin(), arr.end()); // 排序
        
        reverse(arr.begin(), arr.end()); // 反转
        
        // 7 6 5 3
        for(int i = 0; i < arr.size(); i++)
        {
            cout << arr[i] << ends;
        }
        cout << endl;
        
        cout << arr.size() << endl; // 获取元素个数
        
        arr.clear(); // 清空
        
        cout << arr.size() << endl; // 获取元素个数
    
        return 0;
    }    

    迭代删除(有坑) 

    #include <iostream>
    #include <vector>
    
    using namespace std;
     
    int main()
    {
        vector<int> arr;
        
        arr.push_back(6);
        arr.push_back(7);
        arr.push_back(8);
        arr.push_back(8);
        arr.push_back(9);
        arr.push_back(10);
    
        // erase接口返回的iterator指向下一个原生,此时不需要再次移动
        for(vector<int>::iterator it = arr.begin(); it != arr.end(); )
        {
            if(*it == 8)
            {
                it = arr.erase(it); // 等效于arr.erase(it);
            }
            else
            {
                ++it;
            }
        }
        
        for(int i = 0; i < arr.size(); i++)
        {
            cout << arr[i] << ends;
        }
        cout << endl;
    
        return 0;
    }    

    查找(安全)

    #include <iostream>
    #include <vector>
    
    using namespace std;
     
    int main()
    {
        vector<int> arr;
        
        arr.push_back(6);
        arr.push_back(7);
        arr.push_back(8);
        arr.push_back(8);
        arr.push_back(9);
        arr.push_back(10);
    
        vector<int>::iterator it = find(arr.begin(), arr.end(), 8);
        if(it != arr.end())
        {
            cout << "find" << endl;
        }
        else
        {
            cout << "Not find" << endl;
        }
    
        return 0;
    }    
  • 相关阅读:
    二叉搜索树的后序遍历序列(python)
    从上往下打印二叉树(python)
    仿 PS中的颜色填充工具
    噪点图
    另一种噪点图 (有点类似卫星云图)
    像素融解
    比较位图差异
    颜色变换
    像素拷贝及赋值
    使用(模糊)滤镜
  • 原文地址:https://www.cnblogs.com/chusiyong/p/12849041.html
Copyright © 2011-2022 走看看