Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.86
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
#1

Стек и произвольный доступ - C++

27.04.2011, 04:08. Просмотров 2762. Ответов 25
Метки нет (Все метки)

dederkay, то что вы делается сложно назвать стеком. Это больше похоже на список. Точнее это и есть список. Одним из главных свойств стека является то что элементы расположенных в памяти непосредственно друг за другом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2011, 04:08     Стек и произвольный доступ
Посмотрите здесь:

Произвольный доступ к строкам - C++
правильно ли я понимаю что в c++ нет функции "прочитать из файла строку номер ..." ? как её можно реализовать попроще?

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

Произвольный доступ к файлу большого размера 4+гб - C++
Предыстория. Поверхностно изучил файлы и пошел дальше, потом решил вернуться и изучить все глубоко. Все в голове поломалось, когда я понял,...

Произвольный доступ в файл. Лишний символ новой стоки - C++
Здравствуйте, помогите разобратся. #include <iostream> #include <fstream> using namespace std; int main(){ ifstream...

Произвольный тип - C++
как можно задать в параметре функции произвольный тип? что то читал давно про void*... Добавлено через 27 минут и еще вот щас нарыл...

Указатель на произвольный адрес - C++
Как можно заставить указатель указывать на адрес, который я сам введу. Например: int i = 10; /* я знаю её адрес и теперь я хочу...

Создать произвольный класс - C++
У меня есть базовый класс многоугольник. В нем считываются координаты вершин. От этого класса нужно создать производный класс Triangle в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
27.04.2011, 04:51     Стек и произвольный доступ #2
Цитата Сообщение от dederkay Посмотреть сообщение
<тип> operator [] (int i)
Это у массивов, должно искать i-тый элмент и возвращать на него ссылку, а у тебя стек, к нему запрешён произвольный доступ по индексу.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
27.04.2011, 11:39     Стек и произвольный доступ #3
Цитата Сообщение от Overmind024 Посмотреть сообщение
Одним из главных свойств стека является то что элементы расположенных в памяти непосредственно друг за другом.
Нет. Расположение в памяти не имеет никакого значения.
fasked
27.04.2011, 11:41
  #4

Не по теме:

Цитата Сообщение от Overmind024 Посмотреть сообщение
Одним из главных свойств стека является то что элементы расположенных в памяти непосредственно друг за другом.
А ну-ка быстро учить, что такое стек!

Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
27.04.2011, 22:31  [ТС]     Стек и произвольный доступ #5
Ну тогда чем же этот стек отличается от списка?? Названием методов(не add, а push)???
И я не разу не встречал стек не похожий на массив. Откуда же тогда взялось понятие переполнение стека(оперативная память что ли закончилась)??
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
27.04.2011, 22:41     Стек и произвольный доступ #6
Overmind024, стек - это структура данных, никакого отношения ни к памяти, ни к аппаратным или программным реализациям не имеющая. Она не знает, что такое память, что она может закончится и т.д. Как, впрочем, и список. Фишка стека в том, что он не имеет произвольного доступа к элементам. Как заталкивать в него элементы, так и доставать их из него можно только с одного конца. Всё, на этом особенности стека заканчиваются. Как реализуете его вы - массивом, списком или ещё как - это чисто ваш выбор. Единственное требование - должны сохраняться свойства стека, иначе стеком ваша писанина называться не будет (преподы любят давать задания типа "реализовать стек, переопределить операцию доступа по индексу". Слава Богу, у меня подобные личности предметов не вели).
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
27.04.2011, 23:52     Стек и произвольный доступ #7
silent_1991, а где это определено, что стек ни при каких обстоятельствах не может иметь произвольный доступ?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
28.04.2011, 00:22     Стек и произвольный доступ #8
Стек (англ. stack — стопка) — структура данных, в которой доступ к элементам организован по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.04.2011, 01:54     Стек и произвольный доступ #9
Это мне известно, но всетаки что мешает сделать произвольный доступ? И как тогда именовать системный стек?
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.04.2011, 02:05     Стек и произвольный доступ #10
Цитата Сообщение от kazak Посмотреть сообщение
Это мне известно, но всетаки что мешает сделать произвольный доступ? И как тогда именовать системный стек?
Простите, Вы шутите? Вы серьезно не знаете, что такое стек? Может мне опять картинки начать рисовать?
Какой еще произвольный доступ в стеке? Произвольный доступ предполагает, что можно обратиться к любому элементу за время O(1), то есть константа, постоянное время. В стеке же вообще обратиться можно только к одному элементу, и здесь уже не важно как устроен стек: node- или array-based или еще что-нибудь. Главное что доступ есть только к одному элементу. В стеке нельзя осуществлять поиск элемента, вставку в середину... иначе это уже не стек...
Где логика и смысл Ваших высказываний?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
28.04.2011, 02:11     Стек и произвольный доступ #11
kazak, на некотором уровне абстракции стек - структура данных, которая позволяет складывать элементы на стек, и снимать их с его верхушки (за один раз - один элемент). Тут просто не может быть других вариантов. Просто напросто структура данных с возможностью складывать элементы и снимать их с верхушки, но ещё и с произвольным доступом, стеком являться не будет. И даром, что лифо там тоже есть.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.04.2011, 05:57     Стек и произвольный доступ #12
Цитата Сообщение от fasked Посмотреть сообщение
Произвольный доступ предполагает, что можно обратиться к любому элементу за время O(1), то есть константа, постоянное время
Ничего подобного. Произвольный доступ предполагает доступ к элементу по его индексу. Всё, точка.

Цитата Сообщение от kazak Посмотреть сообщение
но всетаки что мешает сделать произвольный доступ?
Повторяю, ЭТО называется Вектор.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
28.04.2011, 09:24     Стек и произвольный доступ #13
Цитата Сообщение от Deviaphan Посмотреть сообщение
Произвольный доступ предполагает доступ к элементу по его индексу.
А по-моему произвольный доступ предполагает доступ к любому элементу без необходимости разрушающего доступа к другим элементам. А по индексу или путём указания какой то иной уникальной для каждого элемента информации - вопрос второстепенный. В реляционных БД для этого используется первичный ключ, в многомерных массивах - комбинация такого количества индексов, какова размерность массива. Да и иттераторы - не совсем индексы.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
28.04.2011, 10:47     Стек и произвольный доступ #14
Цитата Сообщение от taras atavin Посмотреть сообщение
А по индексу или путём указания какой то иной уникальной для каждого элемента информации - вопрос второстепенный.
Под словом "индекс" я подразумевал не переменную типа size_t, а как раз уникальный ключ. Одно это число или комбинация строк - не существенно.

Цитата Сообщение от taras atavin Посмотреть сообщение
В реляционных БД...
БД и контейнер это немного разные сущности.

Цитата Сообщение от taras atavin Посмотреть сообщение
Да и иттераторы - не совсем индексы
Итераторы - совсем не индексы. По определению. Они предназначены для последовательного обхода контейнера. Ничего общего с произвольным доступом итераторы не имеют.

Цитата Сообщение от taras atavin Посмотреть сообщение
по-моему произвольный доступ предполагает доступ к любому элементу без необходимости разрушающего доступа к другим элементам.
Нет. Доступ к элементам списка так же не вызывает разрушения других элементов списка, но ничего общего с произвольным доступом не имеет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2011, 11:06     Стек и произвольный доступ
Еще ссылки по теме:

Дан произвольный текст - C++
И надо введенную строку отсортировать по латинскому алфавиту, которые входят в этот текст по одному разу есть #include &lt;iostream&gt; ...

Вывести на экран произвольный пятиугольник - C++
Помогите написать программу, которая выводит на экран произвольный пятиугольник За ранее спасибо большое! Добавлено через 12...

Найти произвольный член последовательности - C++
Напишите код к программе пожалуйста. Срочно надо, а времени нету. Задание: Даны действительные числа a1,…,a10 и натуральное число m....

Произвольный дружественный шаблонный класс - C++
Добрый день. Не могу понять, как объявить дружественный шаблонный класс. Имеем некий шаблонный класс:template&lt;typename T, typename U&gt; ...

Создать класс, реализующий произвольный треугольник - C++
Класс должен содержать конструктор, деструктор, Set- и Get-методы для каждого поля


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.04.2011, 11:06     Стек и произвольный доступ #15
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ничего подобного. Произвольный доступ предполагает доступ к элементу по его индексу. Всё, точка.
Я могу в собственном классе связного списка завести переменную типа size_t и перегрузить operator[], но от этого random access в данной структуре не появится. То есть я конечно понимаю, что Вы хотите сказать (надеюсь, что понимаю). Но формулировка с индексом ой как не точна.
Цитата Сообщение от taras atavin Посмотреть сообщение
А по-моему произвольный доступ предполагает доступ к любому элементу без необходимости разрушающего доступа к другим элементам. А по индексу или путём указания какой то иной уникальной для каждого элемента информации - вопрос второстепенный. В реляционных БД для этого используется первичный ключ, в многомерных массивах - комбинация такого количества индексов, какова размерность массива. Да и иттераторы - не совсем индексы.
А здесь вообще полный бред написан. Итераторы - это совсем не индексы, это уж скорее указатели, чем индексы Деструктивное воздействие? Вы бы хотя бы википедию открыли прежде, чем начинать спорить..

Ужас какой-то
Yandex
Объявления
28.04.2011, 11:06     Стек и произвольный доступ
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru