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;
    }    
  • 相关阅读:
    如何提高代码质量(管理篇):代码复查
    Codeforce 239 B. Easy Tape Programming
    Codeforces Round #530 (Div. 1) 1098A Sum in the tree
    Codeforce 1098-A
    8月5日加油吧,菜鸡
    8月5日训练日记
    疯子的算法总结(七) 字符串算法之 manacher 算法 O(N)解决回文串
    疯子的算法总结(六) 复杂排序算法 ① 归并排序 merge_sort()
    疯子的算法总结(五) 矩阵乘法 (矩阵快速幂)
    疯子的算法总结(四)贪心算法
  • 原文地址:https://www.cnblogs.com/chusiyong/p/12849041.html
Copyright © 2011-2022 走看看