Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用C++;或者Python中的列表是一个类?数据结构?或者两者都有?_C++_Python_Oop_Class_Data Structures - Fatal编程技术网

C++ 用C++;或者Python中的列表是一个类?数据结构?或者两者都有?

C++ 用C++;或者Python中的列表是一个类?数据结构?或者两者都有?,c++,python,oop,class,data-structures,C++,Python,Oop,Class,Data Structures,我在一篇教程中听到过这样的话:“在面向对象编程语言中,在它们的标准库中有一些预先提供的类,比如字符串和数组,所以在定义这种类型的对象之前,您不需要自己定义这些类。”我也听过我的教授这样说“解决这个问题的最好的数据结构是数组”,那么将数组同时视为类和数据结构是否正确呢 “在面向对象编程语言中,它们的标准库中有预先提供的类,如字符串和数组,因此在定义该类型的对象之前,您无需自己定义这些类。” 正确。 C++标准库提供了许多模板容器类,所以可以只使用那些,而不是编写自己的类。因为这些是基于模板的类,只

我在一篇教程中听到过这样的话:“在面向对象编程语言中,在它们的标准库中有一些预先提供的类,比如字符串和数组,所以在定义这种类型的对象之前,您不需要自己定义这些类。”我也听过我的教授这样说“解决这个问题的最好的数据结构是数组”,那么将数组同时视为类和数据结构是否正确呢

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

正确。
C++标准库提供了许多模板容器类,所以可以只使用那些,而不是编写自己的类。因为这些是基于模板的类,只要满足标准库容器的一些基本要求,就需要使用它们作为自己的数据类型。 你可能想偷看一下这些是什么:

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

不正确。
答案取决于:

  • 要存储哪些数据&
  • 您希望对该数据执行哪些操作
读得好:

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

<>在C++中,数组不是一个类,它只是内存中包含元素数据的一个邻接区域。
但是,你确实有一个封装数组的类。这是一个类和一个数据结构。

数组是一个。它可以在某些语言中作为类实现,但不一定是。不是类。是作为类实现的。

对于标准库来说是可以的,但是,嗯,你为什么说第二个不正确?数组不是吗数据结构,或者你是说老师在如何解决“这个问题”(顺便说一句,OP从未提到过)上是错的?@MrLister:“这个问题的答案取决于:。。。“还是我遗漏了什么?是的,我的意思是你不知道老师在解决什么问题,所以你不知道这是不是错的!”@李斯特先生:在周六,我真的没有心情去咬火饵或迂腐的情绪波动。所以我只想说一次,从OP的Q中可以清楚地看出,他/她的老师建议使用数组是解决这个问题的最好办法(各种容器都可用)@Als我也认为你不能说它是错误的,你自己说这取决于,所以说这是不正确的取决于!将类与数据结构进行比较毫无意义。类必须表示数据结构,但数据结构不一定由类表示。它们之间没有简单的比较。除了混淆的代码<代码> STD::C++ C++中的数组< /COD>,它可以被认为是一个类模板。不,数组不是指针,也不是C,也不是C++。有关详细信息,请参阅,但简短的版本是数组不是指针,而是几乎在任何地方都隐式转换为指针。即使在您给我的链接中也是如此。第6.10节。。只是带重载[]运算符的指针。@YochaiTimmer,嗯?我能在Q6.10中找到的最接近的东西是“第二种思考方式”,它只是说数组是二等公民。提到
[]
的要点是它没有重载-在表达式
arr[i]
中,数组
arr
被转换为指向数组第一个元素的指针,
[]
应用于该指针。看,没有办法给数组下标。正如A6.10所说(再一次),“数组和指针是一样的”并不是一个正确的心智模型。