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;
    }
  • 相关阅读:
    通过 AWS CLI 操作 AWS S3
    AWS S3文件存储服务器搭建(新)
    Vertx 接入MongoDB (九)
    Vertx 接入Redis (八)
    Vertx Mysql数据库优化 (七)
    Vertx 接入Mysql数据库 (六)
    Vertx 实现webapi实战项目(五)
    Vertx 实现webapi实战项目(四)
    Vertx 实现webapi实战项目(三)
    正则表达式:元字符(基本可用来匹配的字符)
  • 原文地址:https://www.cnblogs.com/fancing/p/12574317.html
Copyright © 2011-2022 走看看