zoukankan      html  css  js  c++  java
  • C++STL中的向量vector

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    typedef vector<int> vt;
    int main()
    {
     int i;
     vt v1(10); //定义向量10个元素,注意每个元素初始化为了0
     for (i = 0; i < 10; i++)
      cout << v1[i] << " ";
     cout << endl;
    //---输出0 0 0 0 0 0 0 0 0 0 
     int a[9] = { 1, 3, 2, 4, 6, 7, 8, 3,6 };
     vt v2(a, a + 8);//将数组a的第一个元素到第8个元素作为v2初始化值
     for (vector<int>::iterator it = v2.begin(); it != v2.end(); it++)
      cout << *it << "  ";
     cout << endl;
    //使用迭代器iterator遍历的方法输出向量元素,输出为1 3 2 4 6 7 8 3
    //插入函数insert(),能在向量中指定位置插入一个元素
    //--------------------------------------------------------------------------------------
    //插入前结果  1 3 2 4 6 7 8 3
     v2.insert(v2.begin(), 4);//在v2开头(下标为0的元素)前面插入数据4
    //插入后结果  4 1 3 2 4 6 7 8 3
     v2.insert(v2.begin() + 2, 5);//把数据5插入到下标为2处
    //插入后结果  4 1 5 3 2 4 6 7 8 3
     v2.insert(v2.end(), 18);//在v2最后插入数据18
    //插入后结果  4 1 5 3 2 4 6 7 8 3 18
    //---------------------------------------------------------------------------------------
    //删除函数erase(),能在向量中指定位置插入几个元素
        vt v3(a, a + 8);
     v3.erase(v3.begin()+2);//删除下标为2的元素
     for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
      cout << *it << "  ";
      cout << endl;
    //----输出结果1 3 4 6 7 8 3
     v3.erase(v3.begin() + 1, v3.begin() +3);//左闭右开删除下标为1(包括1)到下标为3(不保存3)之间元素
     for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
      cout << *it << "  ";
     cout << endl;
    //----输出结果1 6 7 8 3
     v3.erase(v3.end()-1);//删除末尾元素,由于右开特性,*(v3.end()-1)才是左后一个元素
     for (vector<int>::iterator it = v3.begin(); it != v3.end(); it++)
      cout << *it << "  ";
     cout << endl;
    //----输出结果1 6 7 8
    //---调用clear()函数清空向量
     v3.clear();
     cout << v3.size() << endl; //输出为0
    //------------------------------------------------------------------------------------------
    //--sort()函数对向量进行(默认)升序排序包含于头文件#include<algorithm>中
     vt v4(a, a + 9);
     sort(v4.begin(), v4.end());
     for (i = 0; i < 9; i++)
      cout << v4[i] << " ";
     cout << endl;
    //输出1 2 3 3 4 6 6 7 8
    }

  • 相关阅读:
    QDir路径的测试与创建-QT
    QGridLayout--01
    第42月第18天 iOS匹配特殊字符 markedTextRange
    第42月15天 framework静态库依赖framework静态库
    第42月第13天 top命令 load average dispatch_group
    第42月第11天 curl post 预约码设计
    第42月第5天 vux 5大功能
    第42月第5天 Swift Playgrounds Mac 版上线 app强制更新
    第42月第4天 Xcode11 打包失败 IPA processing failed
    第42月第3天 PlatformVersionAtLeast armv7 armv7s arm64 podspec icon在线
  • 原文地址:https://www.cnblogs.com/td15980891505/p/4306947.html
Copyright © 2011-2022 走看看