Переменной может понравиться 'интервал', который будут считать примитивной/фундаментальной структурой данных?

Грубое определение структуры данных - то, что она позволяет Вам хранить данные и применять ряд операций на те данные при сохранении непротиворечивости данных прежде и после операции. Однако некоторые люди настаивают, что примитивную переменную как 'интервал' можно также рассмотреть как структуру данных. Я получаю ту часть, где она позволяет Вам хранить данные, но я предполагаю, что операционная часть отсутствует. Примитивные переменные не начинают операции, присоединенные к ним. Таким образом, я чувствую, что, если Вы не переносите ряд операций, определенных и приложенных к нему, Вы не можете назвать его структурой данных. 'интервал' не начинает операции, присоединенной к нему, на это можно управлять с рядом универсальных операторов.

Советуйте, если я получил что-то не так здесь.

6
задан Justin Johnson 12 January 2010 в 05:31
поделиться

9 ответов

, чтобы сказать, что что-то структурировано подразумевает, что существует форма или форматирование, которая определяет, как данные структурированы. Примечание. Это не имеет ничего общего с тем, как данные на самом деле хранятся. Например, вы можете создать структуру данных, которая полностью существует в пределах одного целого числа, но представляет ряд разных значений.

Структура данных представляет собой произвольную конструкцию, используемую для описания того, как хранить данные в системе. Это может быть так же просто, как один примитивный или как комплекс как класс. Так что ответ в основном субъективно. Это «да», если вы решите использовать примитивную как таковую, что простой примитив может считаться примитивной структурой данных, поскольку она описывает, как вы хотите хранить элемент данных. Ответ также «нет», потому что он описывает элемент структуры и не обязательно всю структуру само по себе.

Что касается того, как это относится к операциям, строго говоря, структура данных не имеет ничего общего с поведением, это просто механизм хранения. Сохранение консистенции данных - это действительно поведенческая вещь. Да, ваш компилятор, вероятно, выплевывает ошибки, если вы пытаетесь подниматься на 32-битное значение для обуви, но это симптоматическое о поведении системы (то есть: компиляция), действующего на структуру данных вашего приложения, из которых ваш Примитивы - это элемент.

5
ответ дан 10 December 2019 в 00:38
поделиться

Я бы утвердовал, что «int» - это структура данных - имеет определенное представление и значение. То есть, в зависимости от вашей системы, она имеет определенную длину, конкретный набор операторов, доступных ему, и указанное представление (будь то двойственный комплимент). Он предназначен для хранения «целочисленных чисел».

Практически различие не особенно актуальна.

1
ответ дан 10 December 2019 в 00:38
поделиться

Примитивы имеют операции, связанные с ними; однако они могут быть не в формате методов, как вы ожидаете в объектно-ориентированной парадигме.

Назначение = , сложение + , вычитание - , сравнение = и т.д. - все операции. Особенно если учесть, что можно явно определить, переопределить или перегрузить эти операции для произвольных классов (т.е. структур данных) в некоторых языках (например, C++), то примитив int , char или то, что у вас есть, не сильно отличаются.

-121--4294051-

Можно использовать NSstring для форматирования последовательностей, содержащих типы идентификаторов, а также стандартные типы printf, затем просто распечатать их с помощью printf:

NSString *fmt = [NSString stringWithFormat:@"My formatted string: %@", anObject];

printf("%s", [fmt cStringUsingEncoding:[NSString defaultCStringEncoding]]);
-121--2596313-

К ним не присоединены примитивные переменные. Так что я чувствую, что если у вас нет набора операций, определенных и присоединенных к нему, вы не можете назвать его структурой данных.

«int» не имеет присоединенной к нему операции, она может быть обработана набором универсальных операторов.

Generic? Тогда почему работает 2 + 2 , а «ниндзя» + список < float > нет? Если бы оператор был универсальным, он работал бы над чем угодно. Это не так. Он работает только с несколькими предопределенными типами, такими как целые числа.

Для Ints, безусловно, определен набор операций. Арифметические операции, такие как сложение, вычитание, умножение или деление, например. Большинство языков также имеют некоторую функциональность, подобную ToString () , определяемую целыми числами. Но вы не можете просто ничего с int . Например, невозможно передать int функции, ожидающей последовательности. int имеют определенный набор операций. Эти операции просто не являются методами участников. Они представляют собой операторы и функции, не являющиеся членами, или методы членов других классов. Но они все еще операции, которые работают на целые числа.

0
ответ дан 10 December 2019 в 00:38
поделиться

Я не думаю, что (Ref: Вход в Википедию ), что структура данных включает в себя определение допустимых операций (на операторах). Конечно, мы могли бы привести класс C ++ в качестве контрпример, в котором мы можем определить перегруженные операторы. В то же время мы определяем структуру как только композитный / пользовательский файл DataType и не объявляю о них никаких допустимых операций. Мы позволяем компилятору понять это.

0
ответ дан 10 December 2019 в 00:38
поделиться

Примитивы делают имеют прилагаемые к ним операции; Однако они могут не быть в формате методов, поскольку вы ожидаете в объектно-ориентированной парадигме.

Назначение = , добавление + , вычитание - , сравнение == и т. Д. Все операции. Особенно, если вы считаете, что вы можете явно определить, переопределить или перегружать эти операции для произвольных классов (т. Е. Структуры данных) на некоторых языках (например, C ++), то примитив int , Char ] или что у тебя, не совсем разные.

1
ответ дан 10 December 2019 в 00:38
поделиться

, конечно, это зависит от того, что вы подразумеваете под «структурой данных». Другие сосредоточились на том, правильно ли ваше определение и поднимают хорошие вопросы. Но что, если мы скажем, - давайте игнорируем термин сейчас и сосредоточиться на том, что вы описали? » Другими словами, что, если смотреть на

  • кусок данных, которые обладают обозначенной интерпретацией его значения
  • набор операций на эти данные

, то, безусловно, int квалифицируется. (Если бы не было никаких операций на INT , мы все будем застрять!)

для более математического подхода к программированию, которое начинается с этих вопросов, и принимает их к тому, что некоторые называли «алгеброй Вычисления, «см. элементы программирования Алексеем Степановым и Полом Макжонесом.

0
ответ дан 10 December 2019 в 00:38
поделиться

Ваше определение структуры данных не совсем правильно. Структура данных не обязательно имеет прилагаемое поведение или операции. ADT или абстрактный тип данных - это то, что вы описываете как структура данных. ADT включает в себя данные и поведение или операции, которые работают над этими данными. Сам int сам не является ADT, но я полагаю, вы можете назвать его структурой данных. Если вы инкапсулируете INT и его операции, у вас есть ADT, который я думаю, что вы пытаетесь описать как структуру данных. Классы обеспечивают механизм реализации рекламы на современных языках.

Wikipedia имеет хорошее описание абстрактных типов данных.

1
ответ дан 10 December 2019 в 00:38
поделиться

Я не думаю, что ваше определение структуры данных правильно.

Мне кажется, что структура (без методов) является допустимой структурой данных, но в ней нет реальных «операций». И это не важно. Он хранит данные.

С этой целью int хранит данные, а объект Object хранит данные. Это структуры данных (технически).

Тем не менее, я никогда не замечаю, что говорю: «Какую структуру данных мне использовать? Я знаю! Int!».

Я бы сказал, что вам нужно переоценить значение термина «структура данных».

2
ответ дан 10 December 2019 в 00:38
поделиться

«int» не имеет никакой операции, прилагаемой к нему, она может работать с набором универсальных операторов.

Операции всудительно связаны с вещами , на которых они работают; Там нет такой вещи, как общие операции.

Это верно в математическом смысле ( < < работает в наборе целых чисел, но не имеет значения для сложных чисел), а также в компьютерном научном смысле (оценка A + B Требуется, чтобы и b или могут быть преобразованы в совместимые типы, на которых определяется операция + ).

0
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: