2

我在一个教程中听说过:“在面向对象的编程语言中,标准库中有预先提供的类,如字符串和数组,因此您无需在定义该类型的对象之前自己定义这些类。” 我还听过我的教授说“解决这个问题的最佳数据结构是数组”。那么将数组既视为类又视为数据结构是否正确?

4

3 回答 3

3

在 Python 中,数组既是类又是数据结构。

在 C++ 中,数组不是类。它只是内存中包含元素数据的连续区域。

但是,您确实有std::vector,它是一个包装数组的类。那是一个类和一个数据结构。

于 2012-06-02T08:56:52.200 回答
2

“在面向对象的编程语言中,标准库中预先提供了字符串和数组等类,因此您无需在定义该类型的对象之前自己定义这些类。”

正确的。
C++ 标准库提供了许多模板容器类,因此人们可以直接使用它们而不是编写自己的类。由于这些是基于模板的类,因此只需将它们用于自己的数据类型,只要该类型满足为标准库容器制定的一些基本要求。
您可能想偷看一下它们是什么:标准库容器

“解决这个问题的最佳数据结构是数组”

不正确。
答案取决于:

  • 您要存储什么数据 &
  • 您要对该数据执行哪些操作

好读:
如何在 C++11 中有效地选择标准库容器?

于 2012-06-02T08:55:09.273 回答
0

数组是一种数据类型。它可以在某些语言中作为一个类来实现,但不是必须的。C++ 数组不是类。Python 数组作为类实现。

于 2012-06-03T11:19:50.113 回答