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;
    }    
  • 相关阅读:
    PHP数据采集curl常用的5个例子
    【荐】PHP采集工具curl快速入门教程
    PHP常用正则表达式
    JavaScript方法call、apply、caller、callee、bind的使用详解及区别
    axf、elf文件转换成bin、hex脚本工具
    为什么数据须要做爱
    POJ 3978 Primes(求范围素数个数)
    Facebook Hacker Cup 2015 Round 1--Homework(筛选法求素数)
    后台进程整理
    Nginx优化具体,应对高并发
  • 原文地址:https://www.cnblogs.com/chusiyong/p/12849041.html
Copyright © 2011-2022 走看看