C++相当于Java的Linked List/C#的Array List?

App*_*ker 3 c# c++ java oop arraylist

是否有一个STL容器或其他与Java的Linked List或C#的Array List具有相同功能的容器?即将不同类型附加到相同的数组中

List.Append(1);
List.Append("I am a string");
List.Append(True);
Run Code Online (Sandbox Code Playgroud)

和动态函数一样

List.Resize();
List.GetSize();
Run Code Online (Sandbox Code Playgroud)

等等.?

如果没有,你可以自己使用模板等实现吗?如果是这样,怎么样?

lit*_*adv 7

使用模板很难实现这一点,因为模板假定成员使用单一类型.在C++中,你必须使用一个公共源的多态性(在Java和C#中可用作所有类的常见"对象"父级,恕我直言).

你可以尝试使用boost库和boost::variantor boost::any(选择哪一个适合你的需要).

  • @burningprodigy:哦,我的,为什么你需要瓷砖才能有不同的课程?他们有这种根本不同的行为吗? (3认同)

Kon*_*lph 6

首先,ArrayList C# 和LinkedListJava 是根本不同的东西(一个实现了可调整大小的数组,而另一个实现了链表)。

第二,ArrayList在 C# 中(但不在 Java 中)已被弃用;请改用泛型List<T>(在您的情况下为 a List<object>)。

第三,这对应于std::vectorC++。

如果您需要向其中插入不同的类型,您有三个基本选择: