C++ 动态数组与链表

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

C++ 动态数组与链表

李显虎   2020-01-12 我要评论

动态数组与链表


动态数组的大小不定,内存连续的,可以根据自己的需要,增加或删除元素。知道第一个元素的,那么就可以知道第二个元素,通过下标访问。如果中间插入一个元素,那么中间后面的元素的下标全部都要改变。
使用前记得引如#include

*定义一个动态数组(方法很多,这里不多说,自己百度):

    int a[5]={2,4,6,3,5};
    vector<int>  s1(a,a+sizeof(a)/sizeof(int));//int类型的数组,通过一般数组导入方法。
    vector<int>  s2(4,88);//定义s2(元素个数,元素值)

基本的操作:

    int a[5]={2,4,6,3,5};
    vector<int>  s1(a,a+sizeof(a)/sizeof(int));
    vector<int>  s2(4,88);
    int b=s1.at(2);//返回下表为2的元素。
    cout<<b<<endl;
    cout<<s1.size()<<endl;//返回数组元素的个数
    cout<<s1.front()<<endl;//返回首个元素
    cout<<s1.back()<<endl;//返回最后一个元素
    s1.begin();//返回数组第一个元素的下标。返回的迭代器类型。
    s1.end();同上
    bool c=s1.empty();//判断数组是否为空,如果为空,则返回true.否则返回false.
    cout<<c<<endl;
    //s1.clear();//清空数组元素。
    //bool c2=s1.empty();
    //cout<<c2<<endl;
    s1.swap(s2);//交换s1和s2两个数组的元素。
    s1.swap(s2);
    //for(int i=0;i<s1.size();i++)
    //  cout<<s1[i]<<"   ";

    //for(int i=0;i<s2.size();i++)
    //  cout<<s2[i]<<"   ";
    s1.push_back(100);//尾部插入一个元素100.
    /*for(int i=0;i<s1.size();i++)
        cout<<s1[i]<<"   ";*/
    //s1.insert(s1.begin()+2,3,333);//任意位置插入insert(开始插入的位置,(如果插入相同的数,插入的个数),插入的元素)函数
    //for(int i=0;i<s1.size();i++)
    //  cout<<s1[i]<<"   ";
    //s1.insert(s1.end(),a,a+sizeof(a)/sizeof(int));//把普通数组加入到s1中。
    //  for(int i=0;i<s1.size();i++)
    //  cout<<s1[i]<<"   ";
    //s1.pop_back();//删除尾部的一个元素。
    //s1.erase(s1.begin() +2);//删除s1第三个元素。
    //s1.erase(s1.begin() +2 ,s1.end()-2)//删除【s1.begin() +2 ,s1.end()-2】之间的元素,闭合。
//=============================
//代器遍历的方法:
   vector<int>::iterator iter;//要定义遍历的数组种类的迭代器,用法相当于指针。
    for(iter=s1.begin();iter!=s1.end();iter++)
        cout<<*iter<<"--";
        cout<<endl;


定义一个链表:

    int a[]={1,2,3,4,5};
    list<int> list1(a,a+5);//通过普通数组导入链表

链表的基本操作:
基本操作和动态数组一样,在此基础上增加了。

    int a[]={1,2,3,4,5};
    list<int> list1(a,a+5);
    list1.reverse();//list1中元素倒序
    list1.sort();//list1中元素排序,默认是由小到大。
    list1.remove(2);//移除某个元素。
    list1.push_front(100);//开头插一个元素100.instrt()用法和vector一样。
    list1.pop_front()//删除第一个元素。
     int ss[4]={7,6,5,4};
     list1.insert(list1.begin(),ss,ss+2);//普通数组插入链表中。
     //定义迭代器输出链表。
    list<int>::iterator  itor1 ;
    list<int>::iterator itor2;
    itor1=list1.begin();
    itor2=list1.end();
    for(itor1;itor1!=(itor2);++itor1)
    {
        cout<<*itor1<<endl;

    }
    

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们