zoukankan      html  css  js  c++  java
  • c++中vector的使用

    vector是一种容器,它能够像容器一样存放各种类型的对象,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

    1 、基本操作

    (1)头文件#include<vector>.

    (2)创建vector对象,vector<int> vec;

    (3)尾部插入数字:vec.push_back(a);

    (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

    (5)使用迭代器访问元素.

    vector<int>::iterator it;

    for(it=vec.begin();it!=vec.end();it++)

        cout<<*it<<endl;

    (6)插入元素:    vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

    (7)删除元素:    vec.erase(vec.begin()+2);删除第3个元素

    vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

    (8)向量大小:vec.size();

    (9)清空:vec.clear()

    2、代码示例

    #include "stdafx.h"
    #include <vector>
    #include <algorithm>
    #include <iostream>
    using namespace std;
    
    //vector动态数组容器:向量
    bool rule(const int &a,const int &b)
    {
        return a > b;
    }   //自定义排序规则从大到小排列
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        vector<int> ivec(5,0);
        ivec.push_back(5);
        ivec.push_back(4);
        ivec.push_back(9);
        ivec.push_back(10);
        ivec.push_back(21);
        ivec.push_back(15);
        cout << "int vector:" << ivec.size() << endl;
        for (auto it = ivec.begin(); it != ivec.end();it++)
        {
            cout << *it << " ";
        }
        cout << endl;
    
        ivec.insert(ivec.begin() + 2, 500);//在第三个元素前插入数据
        for (vector<int>::size_type i = 0; i != ivec.size();i++)
            cout << ivec[i] << " ";
        cout << endl;
        sort(ivec.begin(), ivec.end()); //默认从小到大排序
        for (auto it = ivec.begin(); it != ivec.end();it++)
            cout << *it << " ";
        cout << endl;
        sort(ivec.begin(), ivec.end(), rule); //根据rule定义的规则排序
        for (auto it = ivec.begin(); it != ivec.end();it++)
            cout << *it << " ";
        cout << endl;
        ivec.erase(ivec.begin()+2); //删除第三个元素
        for (vector<int>::size_type i = 0; i != ivec.size();i++)
            cout << ivec[i] << " ";
        cout << endl;
        ivec.erase(ivec.begin() + 6, ivec.end()); //删除下标6到最后一个元素
        for (vector<int>::size_type i = 0; i != ivec.size();i++)
            cout << ivec[i] << " ";
        cout << endl;
    
        ivec.clear(); //清空所有元素
    
        getchar();
        return 0;
    }
  • 相关阅读:
    docker相关资源监控采集方法整理
    三节课MINI计划第四周
    三节课MINI计划第五周
    三节课MINI计划第四周
    三节课MINI计划第三周
    三节课MINI计划第二周
    Bilibili用户需求分析报告
    三节课MINI计划第一周
    《产品思维30讲 》学习笔记
    PHP-FPM未授权访问漏洞
  • 原文地址:https://www.cnblogs.com/fancing/p/12574317.html
Copyright © 2011-2022 走看看