• C++STL学习笔记_(1)vector知识


    #include<iostream>
    using namespace std;
    #include "vector"
    
    //数组元素的 添加和删除
    void main31()
    {
        //获取元素的大小
        vector<int> v1;
        cout <<"length: "<<v1.size()<<endl;
        v1.push_back(1);
        v1.push_back(3);
        v1.push_back(5);
        cout <<"length: "<<v1.size()<<endl;
    
        cout<<"头部元素"<<v1.front()<<endl;
    
    
        //修改头部 元素的值
        //函数返回值当左值
        v1.front() = 11;
        v1.back()  = 55;
    
        //获取头部和尾部元素
        while (v1.size()>0)
        {
            cout<<"尾部元素"<<v1.back();//获取尾部的元素
            v1.pop_back();//删除尾部元素
        } 
    }
    //vector的初始化
    void main32()
    {
        //1.
        vector<int> v1;
        v1.push_back(1);
        v1.push_back(3);
        v1.push_back(5);
        v1.push_back(7);
    
        //2.
        vector<int> v2 = v1;//对象初始化
    
        //3.
        vector<int> v3(v1.begin(),v1.begin()+2);
    
    }
    
    void printV(vector<int> &v)
    {
        for (int i =0;i<v.size();i++)
        {
            cout<<v[i]<<endl;
        }
    }
    
    //vector的遍历:通过数组的方式
    void main33()
    {
        vector<int> v1(10);//提前把内存准备好
        for (int i = 0;i<10;i++)
        {
            v1[i] = i + 1;
        }
    
        for (int i = 0;i<10;i++)
        {
            printf("%d
    ",v1[i]);
        }
        printV(v1);
    }
    
    
    //push back的强化
    void main34()
    {
        vector<int> v1(10);//提前把内存准备好
        v1.push_back(100);//从数组的尾部插入元素
        v1.push_back(200);
        cout<<"size:"<<v1.size()<<endl;
        printV(v1);
    }
    
    //迭代器  
    void main35()
    {
        vector<int> v1(10);
        for (int i =0;i<10;i++)
        {
            v1[i] = i+1;
        }
        //正序遍历
        for (vector<int>::iterator it = v1.begin();it != v1.end();it++)
        {
            cout<<*it<<endl;
        }
    
        //逆序遍历
        for (vector<int>::reverse_iterator rit = v1.rbegin();rit != v1.rend();rit++)
        {
            cout<<*rit<<endl;
        }
    
    }
    
    //vector 删除
    void main36()
    {
        vector<int> v1(10);
        for (int i =0;i<10;i++)
        {
            v1[i] = i+1;
        }
        //区间删除
        v1.erase(v1.begin(),v1.begin()+3);
    
        //指定位置删除
        v1.erase(v1.begin());//在头部删除一个元素
        printV(v1);
    
        cout<<endl;
        //根据元素的值
        v1[1] = 2;
        v1[3] = 2;
        printV(v1);
    
        for (vector<int>::iterator it = v1.begin();it != v1.end();)
        {
            if (*it == 2)
            {
                //it = v1.erase(it) 删除后,要接回、新的位置
                it = v1.erase(it);//当删除迭代器所指向的元素的时候,erase会让it自动下移
            }
            else
            {
                it++;
            }
        }
        printV(v1);
    
        cout<<endl;
    
        //插入元素
        v1.insert(v1.begin(),100);
        v1.insert(v1.end(),100);
        printV(v1);
    }
    
    void main()
    {
        //main31();
        //main33();
        //main35();
        main36();
        cout<<"hello..."<<endl;
        return;
    }

     

  • 相关阅读:
    一个涉及到浮点寄存器的CM
    树和二叉树一篇就搞定!
    串的两种模式匹配方式(BF/KMP算法)
    队列的知识讲解与基本实现(数据结构)
    如何用C++实现栈
    判断List集合为空还是null的正确打开方式
    双链表的基本实现与讲解(C++描述)
    Redis从认识安装到实现增删改查
    如何使用C++实现单链表
    线性表——顺序表的实现与讲解(C++描述)
  • 原文地址:https://www.cnblogs.com/wuchuanying/p/6243712.html
Copyright © 2020-2023  润新知