• Vector容器


    Vector容器

    一、             简介

    vector 是将元素置于一个动态数组中加以管理的容器

    vector可以随机存取元素(支持索引值直接存取,用[]操作符或at()函数)

    注:vector尾部添加或移除元素非常快,但是在中部头部插入元素或移除元素比较费时

    二、             废话不多说,代码走起

    1.         vector对象的初始化

    使用stl提供的vector,引用头文件       #include "vector"

             //vector的初始化

             vector<int> v;

             v.push_back(1);

             v.push_back(3);

             v.push_back(5);

             v.push_back(7);

             vector<int> v2 = v;   //对象初始化

             vector<int> v3(v.begin(),v.begin() + 2); //对象初始化 值 1 3

    2.         尾部添加弹出元素、获取头部元素、尾部元素

             vector<int> v1;

             cout<< "length : " <<v1.size() <<endl; //获取vector的大小

             v1.push_back(1); //尾部添加数据 1

             v1.push_back(3); //尾部添加数据 3

             v1.push_back(5); //尾部添加数据 5

             cout<< "length : " <<v1.size() <<endl;//获取vector的大小

             v1.front();//获取头部元素

             v1.back();//获取尾部元素

             //循环vector

             while(v1.size() > 0)

             {

                       cout << "尾部元素" << v1.back() <<endl; //打印每个元素

                       v1.pop_back();//删除尾部元素

             }

             //修改头部元素

             //函数返回值当左值,应该返回一个引用

             v1.front() = 12;

             v1.back() = 78;

             //再次循环vector

             while(v1.size() > 0)

             {

                       cout << "尾部元素" << v1.back() <<endl; //打印每个元素

                       v1.pop_back();//删除尾部元素

             }

    3.         vector的遍历:通过数组的方式

             //遍历vector 通过数组的方式

             vector<int> v1(10); //特别提示:提前把内存准备好

             //给vector赋值

             for ( int i = 0 ; i < 10 ; i++ )

             {

                       v1[i] = i + 1;

             }

             for (int j = 0 ; j < 10 ; j++)

             {

                       printf("%d ",v1[j]);

                      }

    push_back强化

             vector<int> v1(10);//特别提示:提前把内存准备好,初始化vector个元素默认值为0

             v1.push_back(100);

             v1.push_back(200);

             cout<< "size:" << v1.size() <<endl; //结果:12

                      //push_back总结:在vecotr元素的后面添加元素

    4.         vector的遍历:通过迭代器的方式

             vector<int> v1(10); //特别提示:提前把内存准备好

             //给vector赋值

             for ( int i = 0 ; i < 10 ; i++ )

             {

                       v1[i] = i + 1;

             }

             //正向遍历

             for(vector<int>::iterator it = v1.begin() ; it != v1.end() ; it++)

             {

                       cout << *it << " ";

             }

             //逆序遍历

             for(vector<int>::reverse_iterator rit = v1.rbegin() ; rit != v1.rend() ; rit++)

             {

                       cout << *rit << " ";

                      }

    迭代器的种类

    只读迭代器,如

    vector<int>::const_iterator 与 vector<int>::const_reverse_iterator

    5.         vector的删除操作

         vector<int> v1(10); //特别提示:提前把内存准备好

         //给vector赋值

         for ( int i = 0 ; i < 10 ; i++ )

         {

                  v1[i] = i + 1;

         }

    //区间删除

    v1.erase(v1.begin() , v1.begin() + 3);

    for(vector<int>::iterator it = v1.begin() ; it != v1.end() ; it++)

             {

                       cout << *it << " ";

             }

    //根据元素位置 指定位置删除

    v1erase(v1.begin());                  //在头部删除一个元素

    //根据元素的值

    v1[1] = 2;

    v1[3] = 2;

    for( vector<int>::iterator it = v1.begin(); it != v1.end();)  //注:it++删除

    {

             if(*it == 2)

             {

                       v1.erase(it);              //当删除迭代器所指向的元素的时候,erase函数会让it自动下移

             }

             else

             {

                       it ++ ;

             }

    }

    6.         vector数据的插入

         vector<int> v1(10); //特别提示:提前把内存准备好

         //给vector赋值

         for ( int i = 0 ; i < 10 ; i++ )

         {

                  v1[i] = i + 1;

         }

    v1.insert(v1.begin() , 100);

    v1.insert(v1.end() , 200);

     

  • 相关阅读:
    ARTS第八周打卡
    ARTS第七周打卡
    ARTS第六周打卡
    ARTS第五周打卡
    ARTS第四周打卡
    ARTS第三周打卡
    ARTS 第二周
    uniapp——头部导航栏配置
    码云、Git使用教程
    超出文本宽度点点显示——css
  • 原文地址:https://www.cnblogs.com/zzhua/p/5940062.html
Copyright © 2020-2023  润新知