C++ 动态数组与链表

lixianhu1998 2020-01-12 原文

C++ 动态数组与链表

动态数组与链表


动态数组的大小不定,内存连续的,可以根据自己的需要,增加或删除元素。知道第一个元素的,那么就可以知道第二个元素,通过下标访问。如果中间插入一个元素,那么中间后面的元素的下标全部都要改变。
使用前记得引如#include
链表是一个一个结点在内存中离散的分布。各个结点之间通过元素内部的指针实现的。要查找中间某个元素,必须从第一个元素开始一部一步遍历 ,使用之前记得 #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;

    }
    
发表于
2020-01-12 19:44 
李显虎 
阅读(
评论(
编辑 
收藏

 

版权声明:本文为lixianhu1998原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lixianhu1998/p/12184455.html

C++ 动态数组与链表的更多相关文章

  1. UniRx精讲(二):独立的 Update &UniRx 的基本语法格式

    独立的 Update 在 UniRx 简介的时候,笔者讲了一种比较麻烦的情况:就是在 MonoBehaviou […]...

  2. C#对接—-韵达开发平台–取电子面单

    最近根据业务的一些需求,所以放弃从快递鸟对接去电子面单,转而直接对接韵达开发平台:http://open.yu […]...

  3. 寻找DevExpress破解经历之旅

    众所周知DevExpress是收费的,但是破解版的也不少,近期公司需要做发票套打的功能让我找个打印工具,我寻思 […]...

  4. C# 反射与特性(十):EMIT 构建代码

    目录 构建代码 1,程序集(Assembly) 2,模块(Module) 3,类型(Type) 4,Dynam […]...

  5. C# 数据操作系列 – 10 NHibernate初试

    0. 前言 在上一篇基本讲完了EF Core的入门级教程。从这一篇开始,我们试着去探索一下 .net core […]...

  6. C# 常用代码整理

    C# 常用代码整理     1 【字号:大 小】   2  3一、从控制台读取东西代码片断:  4using  […]...

  7. [C++] Sign and magnitude,Ones\’ complement and Two\’s complement

    Sign and magnitude,Ones\’ complement and Two\R […]...

  8. CMU数据库(15-445)实验2-B+树索引实现(下+课上笔记)

    4. Index_Iterator实现 这里就是需要实现迭代器的一些操作,比如begin、end、isend等 […]...

随机推荐

  1. 系统用户与用户组管|chfn、密码管理、身份切换、sudo – 思远道

    系统用户与用户组管|chfn、密码管理、身份切换、sudo 2 系统用户与用户组管理 GID为GroupId, […]...

  2. 海康威视网络摄像机 SDK二次开发(JAVA)(1-DEMO测试) – 癫狂编程

    海康威视网络摄像机 SDK二次开发(JAVA)(1-DEMO测试) 本次测试的demo名为ClientDemo […]...

  3. 联盟链FISCO BCOS v2.0.0-rc3 发布

    联盟链FISCO BCOS v2.0.0-rc3 发布 Posted on 2019-07-08 18:35 […]...

  4. 求两个链表是否相交并求出相交点

    一、问题描述 有两个链表,判断是否相交并求出相交的点?   二、问题分析 大家看到题目会不由自主的想起一个很普 […]...

  5. 207.华为matebook14vm虚拟机错误

    1.创建时显示不支持64位虚拟机 测试环境: 华为matebook14 window10 专业工作站版  19 […]...

  6. mongoDB常用命令与安全加固

    一、介绍 MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性 […]...

  7. [Windows Server 2008] Windows防火墙设置

    Windows防火墙这个在个人PC上的鸡肋,在服务器安全方面却能起到很大的作用。本节介绍如何在 Windows […]...

  8. Web Api 基于Zookeeper的服务注册与发现

    安装与差异   Zookeeper安装请参考我上篇文章 http://www.cnblogs.com/woxp […]...

展开目录

目录导航