• C++


    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  存储元素 vector的元素不仅仅可以使int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。

    3  算法

    (1) 使用reverse将元素翻转:需要头文件#include<algorithm>

    reverse(vec.begin(),vec.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,

    一般后一个都不包含.)

    (2)使用sort排序:需要头文件#include<algorithm>,

    sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).

    可以通过重写排序比较函数按照降序比较,如下:

    定义排序比较函数:

    bool Comp(const int &a,const int &b)
    {
        return a>b;
    }
    调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    vector<int> vec;
    
    bool cmp(int a, int b){
        return a>b;
    }
    
    int main() {
        vec.clear();
        for (int i=0; i<10; ++i) {
            int temp;
            cin >> temp;
            vec.push_back(temp);
        }
    
        // vector迭代器的遍历
        vector<int>::iterator it;
        for (it=vec.begin(); it!=vec.end(); it++) {
            cout << *it << " ";
        }
        cout << "============================
    ";
    
        int temp;
    
        // 插入
        cin >> temp;
        vec.insert(vec.begin()+2, temp); // 第三个元素前面插入temp
        cout << vec.size() << "===
    ";
        for (it=vec.begin(); it!=vec.end(); it++) {
            cout << *it << " ";
        }
        cout << "============================
    ";
    
        // 删除
        vec.erase(vec.begin()+2); // 删除第三个元素
        cout << vec.size() << "===
    ";
        for (it=vec.begin(); it!=vec.end(); it++) {
            cout << *it << " ";
        }
        cout << "============================
    ";
    
        // 翻转
        reverse(vec.begin(), vec.end());
        for (it=vec.begin(); it!=vec.end(); it++) {
            cout << *it << " ";
        }
        cout << "============================
    ";
    
        //排序
        sort(vec.begin(), vec.end(), cmp);
        for (it=vec.begin(); it!=vec.end(); it++) {
            cout << *it << " ";
        }
        cout << "============================
    ";
        return 0;
    }
    

      

  • 相关阅读:
    总结一些关于操作数据库是sql语句还是存储过程问题
    vs2010 创建预编译头 Debug 正常 Release Link Error问题解决
    创建Unicode格式的INI文件
    dos命令记录以及dos下通过进程id查找工作路径
    windows下多字节和宽字节转换
    关于多字节传输导致的乱码问题
    关于mysql数据库字符集优先级问题
    转: Apache开启gzip
    HTML 5 drag and drop 简介
    转: ES6异步编程: co函数库的含义与用法
  • 原文地址:https://www.cnblogs.com/icode-girl/p/5371147.html
Copyright © 2020-2023  润新知