] реализация fifo/queue в Go: Руководство по эффективному хранилищу
go Предоставляет три типа контейнера: куча, список и вектор, каждый предлагая уникальные преимущества. Однако для реализации очереди FIFO (первого в первую очередь) определенный выбор возникает на основе его производительности и простоты использования.
оптимальный контейнер для очередей
Вопреки распространенному мнению, ломтики предлагают идеальное решение для реализации основных и эффективных очередей FIFO. В отличие от других типов контейнеров, срезы обеспечивают эффективную структуру, которая избегает ненужной реализации изменения размера и перераспределения. Использование срезов:
queue: = make ([] int, 0) // толчок к очереди queue = append (queue, 1) // top (просто получите следующий элемент, не удаляйте его) x: = queue [0] // отбросить верхний элемент очередь = очередь [1:] // пусто? Если len (queue) == 0 { fmt.println ("очередь пуста!") }
надежность среза
queue := make([]int, 0) // Push to the queue queue = append(queue, 1) // Top (just get next element, don't remove it) x := queue[0] // Discard top element queue = queue[1:] // Is empty? if len(queue) == 0 { fmt.Println("Queue is empty !") }]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3