c++ - 如何让你的数据结构接受任何类的对象 - C++

标签 c++ data-structures

我该怎么做?正如您在 Java 中所了解的那样,您可以使用 ArrayList,只要您在检索对象时将其转换为任何对象,它就会接受任何对象。

更好的是,您可以指定 ArrayList 将存储的对象类,方法是...

new ArrayList()< whateverObject >

我已经在 C++ 中实现了一个链表数据结构,我想知道我如何才能让它做到这一点...

目前,我正在使用...

typedef whateverObject ItemType

在我的链接列表的头文件的开头,然后在整个链接列表的实现过程中操纵“ItemType”。所以每次我想改变类型时,例如我不想使用列表来存储字符串,而是想存储一个 int,我必须更改链接列表标题中的 typedef,但我希望能够简单地将它用于任何对象,所以...

怎么办?!

谢谢。

最佳答案

模板是您问题的答案。

定义链表如下:

template<typename ItemType>
class ArrayList
{
  // What's inside your class definition does not need to be changed
  // Include your method definitions here and you'll be fine
};

然后要使用的类型是 ArrayList<WhateverObject> .

关于c++ - 如何让你的数据结构接受任何类的对象 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191238/

相关文章:

c++ - OpenCV houghcircles 没有检测到任何 C++

algorithm - 反转数组查询

swift - 寻找在 Swift 中从字符串中过滤文本的最佳方法

java - 饲料数据结构

c++ - 使用 cout 将表达式转换为赋值

c++ - 如何通过构造函数将容量大小传递给无锁 spsc_queue

c++ - 转换可变参数函数的参数

c - 为什么 BSD 在链表条目中使用双指针?

c++ - 存储和重用 vector 迭代器值是否安全?

c++ - 在类(class)结束时声明私有(private)成员有什么好处?