Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Petr_S
197 / 198 / 87
Регистрация: 21.04.2013
Сообщений: 387
1

Как удалить самый первый элемент в коллекции Stack(Of T)

09.04.2015, 02:51. Просмотров 855. Ответов 4
Метки нет (Все метки)

Доброго времени суток. Есть коллекция типа Stack(Of T), организованная по типу LIFO. В нее добавляются элементы. Размер коллекции ограничен. Как, при превышении коллекцией разрешенного размера, удалить самый первый (самый старый) из элементов?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2015, 02:51
Ответы с готовыми решениями:

Как выбрать из массива первый элемент, который больше некоторого заданного
У меня есть одномерный массив, нужно из этого массива выбрать первый элемент,...

Как удалить элемент из коллекции, во время перебора этой коллекции foreach?
Прив. Смотрите что. Есть сервер, на нем 2 класса - Server & ClientConnection....

Поменять местами самый первый элемент массива и самый большой
Вводится какой-нибудь массив, поменять местами самый первый элемент массива и...

Квэсчин новичка. Не удается удалить самый первый коммит
Сегодня начал изучать git. Создал 2 коммита. Затем удалил второй коммит с...

Как удалить первый элемент строки
есть строка: "Hello world", как удалить первую букву? Юзаю erase, но чего-то...

4
Замабувараев
326 / 335 / 91
Регистрация: 18.12.2014
Сообщений: 684
Записей в блоге: 1
09.04.2015, 11:19 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Никак. Только перейти на List(Of T) и использовать методы Add, Count, Item и RemoveAt для организации стека с ограниченной ёмкостью.

Добавлено через 8 минут
Второй вариант: использовать класс LinkedList(Of T), у него есть методы Count, RemoveFirst, RemoveLast и AddLast.
1
Petr_S
197 / 198 / 87
Регистрация: 21.04.2013
Сообщений: 387
09.04.2015, 17:09  [ТС] 3
Замабувараев, похоже, у меня получилось удалить самый старый элемент:
vb.net
1
2
3
4
5
6
7
8
9
        Dim s As New Stack(Of Integer)
 
        For n As Integer = 10 To 19
            s.Push(n)
        Next
        MsgBox(String.Join(vbCrLf, s.ToArray))
 
        s = New Stack(Of Integer)(s.Reverse.Skip(1))
        MsgBox(String.Join(vbCrLf, s.ToArray))
0
Замабувараев
326 / 335 / 91
Регистрация: 18.12.2014
Сообщений: 684
Записей в блоге: 1
09.04.2015, 17:31 4
Petr_S, это костыль. Требует дополнительную память и манипулирует перестановками элементов.
0
Petr_S
197 / 198 / 87
Регистрация: 21.04.2013
Сообщений: 387
09.04.2015, 17:47  [ТС] 5
Замабувараев, согласен. Но, т. к. максимальная емкость стека предполагается небольшой, то это не сильно скажется на быстродействии и памяти.
0
09.04.2015, 17:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2015, 17:47

Как удалить первый элемент из std::list?
Скажите как удалить первый элемент из лист ругается вот как 181 C:\Documents...

Как удалить первый четный элемент списка
Ребят помогите!!! Я запутался ни как не могу понять где ошибка....:( У меня...

Удалить первый четный и первый нечетный элемент до первого отрицательного элемента массива
Помогите, пожалуйста! Дан одномерный массив. Удалить первый четный и первый...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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