Language agnostic 可以使用';int';是否被视为原始/基本数据结构?

Language agnostic 可以使用';int';是否被视为原始/基本数据结构?,language-agnostic,data-structures,variables,computer-science,Language Agnostic,Data Structures,Variables,Computer Science,数据结构的粗略定义是,它允许您存储数据并对该数据应用一组操作,同时保持操作前后数据的一致性。 然而,有些人坚持认为,像“int”这样的原始变量也可以被视为数据结构。我得到了允许你存储数据的部分,但我猜操作部分缺失了。基本变量没有附加操作。所以我觉得,除非定义并附加了一组操作,否则就不能称之为数据结构int'没有附加任何操作,可以使用一组通用运算符对其进行操作 如果我在这里出错,请提供建议。我认为您对数据结构的定义不正确 在我看来,struct(没有方法)是一个有效的数据结构,但它没有真正的“操作

数据结构的粗略定义是,它允许您存储数据并对该数据应用一组操作,同时保持操作前后数据的一致性。 然而,有些人坚持认为,像“int”这样的原始变量也可以被视为数据结构。我得到了允许你存储数据的部分,但我猜操作部分缺失了。基本变量没有附加操作。所以我觉得,除非定义并附加了一组操作,否则就不能称之为数据结构int'没有附加任何操作,可以使用一组通用运算符对其进行操作


如果我在这里出错,请提供建议。

我认为您对数据结构的定义不正确

在我看来,
struct
(没有方法)是一个有效的数据结构,但它没有真正的“操作”。这并不重要。它保存着数据

为此,int保存数据,对象保存数据。它们是数据结构(技术上)

也就是说,我从来没有说过“我应该使用什么数据结构?我知道!一个int!”

我想说你需要重新评估“数据结构”的含义。

我认为“int”是一种数据结构——它具有定义的表示和含义。也就是说,根据您的系统,它有一个特定的长度、一组特定的运算符和一个指定的表示形式(可以是两个)。它被设计用来保存“整数”

实际上,这种区别并不特别相关

原语确实附加了操作;但是,它们可能不像您在面向对象范例中所期望的那样采用方法的格式

赋值
=
、加法
+
、减法
-
、比较
=
等都是操作。特别是如果你认为可以为某些语言(例如C++)中的任意类(即:数据结构)显式地定义、重写或重载这些操作,那么原始<代码> int <代码>、<代码> char < /> >或者你有什么不同,

基本变量没有附加操作。所以我觉得,除非定义并附加了一组操作,否则不能称之为数据结构

“int”没有附加任何操作,可以使用一组通用运算符对其进行操作


通用的?那么为什么
2+2
有效,而
“忍者”+列表却无效呢?如果操作符是通用的,它可以处理任何事情。没有。它只适用于少数预定义类型,例如整数


INT当然有一组定义在其上的操作。算术运算,例如加法、减法、乘法或除法。大多数语言在整数上还定义了类似于
ToString()
的功能。但是你不能用
int
做任何事情。例如,不能将
int
传递给需要字符串的函数
int
s有一组非常特定的操作定义在它们上面。这些操作不是成员方法。它们以运算符、非成员函数或其他类的成员方法的形式出现。但它们仍然是对整数起作用的操作。

说某些东西是结构化的,意味着有一种形式或格式定义了数据的结构化方式。注意,这与数据的实际存储方式无关。例如,您可以创建一个数据结构,该结构完全存在于单个整数中,但表示许多不同的值

数据结构是用来描述如何在系统中存储数据的任意结构。它可以像单个原语一样简单,也可以像类一样复杂。所以答案很大程度上是主观的。如果您决定使用原语,则“是”,简单原语可以被视为原语数据结构,因为它描述了您希望如何存储数据元素。答案也是“否”,因为它描述的是结构的一个元素,而不一定是整个结构本身


至于这与操作的关系,严格来说,数据结构与行为无关,它只是一种存储机制。保持数据的一致性实际上是一种行为。是的,如果您试图将32位值转换为一个字节,编译器可能会抛出错误,但这是系统行为(即:编译)作用于应用程序的数据结构的症状,您的原语是其中的一个元素。

我不认为,(ref:)该数据结构包括允许操作的定义(在运算符上)。当然,我们可以引用C++类作为一个反例,我们可以定义重载运算符。同时,我们将结构定义为一个复合/用户定义的数据类型,并且不声明任何允许的操作。我们允许编译器找出答案。

您对数据结构的定义不太正确。数据结构不一定有任何附加的行为或操作。ADT或抽象数据类型就是您所描述的数据结构。ADT包括数据以及处理该数据的行为或操作。int本身不是ADT,但我想您可以称它为数据结构。如果你封装了一个int和它的操作,那么你就有了一个ADT,我想你是想把它描述成一个数据结构。类提供了用现代语言实现ADT的机制

对抽象数据类型有很好的描述

“int”没有附加任何操作,可以使用一组通用运算符对其进行操作

操作与以下内容有着内在的联系: