C++模拟实现JDK中的ArrayList和LinkedList

yizhihongxing

C++模拟实现JDK中的ArrayList和LinkedList

在C++中,可以使用STL中的vector和list来实现类似于JDK中的ArrayList和LinkedList的功能。下面是使用C++ STL实现ArrayList和LinkedList的示例。

ArrayList的实现

#include <iostream>
#include <vector>

using namespace std;

class ArrayList {
public:
    ArrayList() {}

    void add(int value) {
        list.push_back(value);
    }

    int get(int index) {
        return list[index];
    }

    int size() {
        return list.size();
    }

private:
    vector<int> list;
};

int main() {
    ArrayList list;
    list.add(1);
    list.add(2);
    list.add(3);

    for (int i = 0; i < list.size(); i++) {
        cout << list.get(i) << " ";
    }
    cout << endl;

    return 0;
}

在上面的示例中,使用了C++ STL中的vector来实现ArrayList。add方法使用push_back函数向vector中添加元素,get方法使用[]运算符获取指定位置的元素,size方法使用size函数获取vector的大小。

LinkedList的实现

#include <iostream>
#include <list>

using namespace std;

class LinkedList {
public:
    LinkedList() {}

    void add(int value) {
        list.push_back(value);
    }

    int get(int index) {
        list<int>::iterator it = list.begin();
        advance(it, index);
        return *it;
    }

    int size() {
        return list.size();
    }

private:
    list<int> list;
};

int main() {
    LinkedList list;
    list.add(1);
    list.add(2);
    list.add(3);

    for (int i = 0; i < list.size(); i++) {
        cout << list.get(i) << " ";
    }
    cout << endl;

    return 0;
}

在上面的示例中,使用了C++ STL中的list来实现LinkedList。add方法使用push_back函数向list中添加元素,get方法使用iterator迭代器获取指定位置的元素,size方法使用size函数获取list的大小。

总结

使用C++ STL中的vector和list可以很方便地实现类似于JDK中的ArrayList和LinkedList的功能。vector适用于随机访问,list适用于插入和删除操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++模拟实现JDK中的ArrayList和LinkedList - Python技术站

(0)
上一篇 2023年5月5日
下一篇 2023年5月5日

相关文章

  • 自动挂载文件/etc/fstab功能详解

    当然,我可以为您提供详细的“自动挂载文件/etc/fstab功能详解”的完整攻略,包括两个示例说明。 自动挂载文件/etc/fstab详解 /etc/fstab是系统中的一个文件,用于定义系统启动时需要自动挂载的文件系统。在本教程中,我们将绍/etc/fstab的详功能和使用方法,包括两个示例说明。 功能 /etc/fstab的主要功能是定义系统启动时需要自…

    other 2023年5月7日
    00
  • kali中john的使用方法

    Kali中John的使用方法的完整攻略 John the Ripper是一款常用的密码破解工具,可以在Kali Linux中使用。本文将介绍在Kali中使用John的完整略,包括两个示例说明。 步骤一:安装John 在使用John之前,需要先安装John。可以使用以下命令在Kali Linux中安装John: sudo apt-get update sudo…

    other 2023年5月9日
    00
  • 关于java:使用streams累加bigdecimals

    以下是关于“关于java:使用streams累加bigdecimals”的完整攻略,包括基本知识和两个示例。 基本知识 在Java中,可以使用Streams API对集合进行操作Streams API提供了一种简单、活、可读性强的方式来处理集合中的元素。在Streams API中,可以使用reduce()方法集合中的元素进行累加操作。 BigDecimal是…

    other 2023年5月7日
    00
  • Android使用Spinner控件实现下拉列表的案例

    Android使用Spinner控件实现下拉列表的案例攻略 Spinner控件是Android中常用的下拉列表控件,可以用于展示一组选项供用户选择。下面是使用Spinner控件实现下拉列表的完整攻略。 步骤一:在布局文件中添加Spinner控件 首先,在你的布局文件中添加Spinner控件。以下是一个示例: <Spinner android:id=\&…

    other 2023年9月7日
    00
  • 如何添加chrome迅雷扩展程序添加chrome迅雷扩展程序的方法

    如何添加Chrome迅雷扩展程序 Chrome迅雷扩展程序可以帮助用户更方便地使用迅雷下载和快传等功能。本攻略将详细讲如何添加Chrome迅雷扩展程序的方法,包括打开Chrome网上用店、搜索迅雷扩展程序、添加至Chrome等步骤。 添加Chrome迅雷扩展程序的方法 以下是添加Chrome迅雷扩展程序的方法: 打开Chrome浏览器,点击右上角的三个点,选…

    other 2023年5月7日
    00
  • 酷我音乐api

    以下是酷我音乐API的完整攻略,包括以下步骤: 获取酷我音乐API的接口地址 发送HTTP请求 解析API响应 示例说明 步骤一:获取酷我音乐API的接口地址 在使用酷我音乐API之前,需要先获取API的接口地址。以下是获取酷我音乐API接口地址的步骤: 打开酷我音乐官方网站 查找API文档或开发者文档 获取API接口地址 步骤二:发送HTTP请求 在获取酷…

    other 2023年5月9日
    00
  • Java4Android开发教程(四)java的变量

    Java4Android开发教程(四)java的变量 在Java中,变量是用来存储数据的容器。在本教程中,我们将学习如何声明和使用变量,并了解不同类型的变量。 变量的声明和初始化 在Java中,变量的声明和初始化是分开进行的。声明变量时,需要指定变量的类型和名称。初始化变量时,需要为变量赋予一个初始值。 以下是声明和初始化变量的示例: int age; //…

    other 2023年8月8日
    00
  • cdr备份文件在哪里

    针对您的问题,下面是详细的攻略: 什么是cdr备份文件 在Mac电脑上,.cdr是一种用于光盘存储的文件格式。.cdr备份文件是将光盘内容备份到计算机上的文件,通常用于将CD或DVD上的文件备份到您的Mac或外部存储设备上。 cdr备份文件保存路径 在Mac电脑上,.cdr备份文件可以存储在本地硬盘、外部存储设备或云端服务器上。一般情况下,cdr备份文件存储…

    其他 2023年4月16日
    00
合作推广
合作推广
分享本页
返回顶部