algorithms

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Accumulate added in v0.4.0

func Accumulate[T interfaces.Numeric](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	init T,
) T

Accumulate вычисляет сумму всех элементов в диапазоне [begin, end) начиная с начального значения init. Функция проходит по всем элементам диапазона, добавляя каждый элемент к переменной init.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно). - init: начальное значение, с которого начинается накопление.

Возвращает: - итоговую сумму всех элементов диапазона, включая начальное значение init.

func Advance added in v0.4.0

func Advance[T any](it interfaces.Iterator, n int)

Advance продвигает итератор it на n шагов вперед или назад.

Функция поддерживает три вида итераторов:

  • RandomAccessIterator: итератор с произвольным доступом. Если итератор реализует этот интерфейс, он сдвигается на n шагов с помощью метода Shift. Этот метод оптимален по скорости для итераторов с произвольным доступом.
  • BidirectionalIterator: итератор с двусторонним доступом. Если итератор реализует этот интерфейс, и n отрицательное, итератор сдвигается назад на n шагов с помощью метода Prev.
  • UnidirectionalIterator: итератор с однонаправленным доступом. Если итератор не поддерживает произвольный или двусторонний доступ, он сдвигается на n шагов вперед с помощью метода Next.

Параметры:

  • it: итератор, который будет сдвинут.
  • n: количество шагов для сдвига итератора. Если n положительное, итератор двигается вперед. Если n отрицательное, итератор двигается назад (при поддержке двустороннего доступа).

Поведение функции зависит от типа итератора: - RandomAccessIterator: сдвиг производится одним вызовом Shift. - BidirectionalIterator: сдвиг вперед производится через Next, назад — через Prev. - UnidirectionalIterator: поддерживается только сдвиг вперед через Next. Сдвиг назад невозможен.

func AdvanceCopy added in v0.4.0

func AdvanceCopy[T any, It interfaces.Iterator](it It, n int) It

AdvanceCopy продвигает копию итератора it на n шагов вперед или назад и возвращает его.

func AllOf

func AllOf[T any](begin interfaces.ForwardIterator[T], end interfaces.Iterator, predicate unaryPredicate[T]) bool

AllOf проверяет, удовлетворяют ли все элементы в диапазоне [begin, end) предикату. Функция возвращает true, если все элементы удовлетворяют предикату, иначе false.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в поиск). - predicate: унарный предикат, который применяется к каждому элементу.

Возвращает: - булево значение true, если все элементы удовлетворяют предикату, или false, если хотя бы один элемент не удовлетворяет.

func AnyOf

func AnyOf[T any](begin interfaces.ValueIterator[T], end interfaces.Iterator, predicate unaryPredicate[T]) bool

AnyOf проверяет, удовлетворяет ли хотя бы один элемент в диапазоне [begin, end) предикату. Функция возвращает true, если хотя бы один элемент удовлетворяет предикату, иначе false.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в поиск). - predicate: унарный предикат, который применяется к каждому элементу.

Возвращает: - булево значение true, если хотя бы один элемент удовлетворяет предикату, или false, если ни один элемент не удовлетворяет.

func Copy

Copy копирует элементы из диапазона [begin, end) в диапазон, начинающийся с destBegin. Функция возвращает итератор на конец диапазона назначения.

Параметры: - begin: итератор, указывающий на начало исходного диапазона. - end: итератор, указывающий на конец исходного диапазона (не включается в копирование). - destBegin: итератор, указывающий на начало диапазона назначения.

Возвращает: - итератор на конец диапазона назначения.

func CopyIf

func CopyIf[T any](
	begin interfaces.ValueIterator[T], end interfaces.Iterator,
	destBegin interfaces.PointerIterator[T],
	predicate unaryPredicate[T],
) interfaces.PointerIterator[T]

CopyIf копирует элементы из диапазона [begin, end), которые удовлетворяют предикату, в диапазон, начинающийся с destBegin. Функция возвращает итератор на конец диапазона назначения.

Параметры: - begin: итератор, указывающий на начало исходного диапазона. - end: итератор, указывающий на конец исходного диапазона (не включается в копирование). - destBegin: итератор, указывающий на начало диапазона назначения. - predicate: унарный предикат, который применяется к каждому элементу.

Возвращает: - итератор на конец диапазона назначения.

func Count

func Count[T comparable](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
) uint

Count подсчитывает количество элементов в диапазоне [begin, end), равных заданному значению, используя оператор сравнения ==. Функция возвращает количество найденных элементов.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в подсчет). - value: значение, которое необходимо подсчитать.

Возвращает: - количество найденных элементов.

func CountC

func CountC[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
	cmp comparator.Comparator[T],
) uint

CountC подсчитывает количество элементов в диапазоне [begin, end), равных заданному значению, используя пользовательский компаратор. Функция возвращает количество найденных элементов.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в подсчет). - value: значение, которое необходимо подсчитать. - cmp: пользовательский компаратор для сравнения элементов.

Возвращает: - количество найденных элементов.

func CountIf

func CountIf[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	predicate unaryPredicate[T],
) uint

CountIf подсчитывает количество элементов в диапазоне [begin, end), удовлетворяющих предикату. Функция возвращает количество найденных элементов.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в подсчет). - predicate: унарный предикат, который применяется к каждому элементу.

Возвращает: - количество найденных элементов.

func Distance added in v0.4.0

func Distance[T any](begin, end interfaces.Iterator) uint

Distance вычисляет количество элементов в диапазоне [begin, end). Если итераторы поддерживают случайный доступ (RandomAccessIterator), вычисление производится за константное время. В противном случае используется линейный обход диапазона для подсчета количества элементов.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно).

Возвращает: - количество элементов в диапазоне [begin, end) в виде значения типа uint.

func Equals

Equals проверяет, равны ли все элементы двух диапазонов [a, b), используя оператор сравнения ==. Функция возвращает true, если все элементы равны, иначе false.

Параметры: - a: итератор, указывающий на начало первого диапазона. - b: итератор, указывающий на начало второго диапазона.

Возвращает: - булево значение true, если все элементы равны, или false, если хотя бы один элемент не равен.

func EqualsC

func EqualsC[T any](a, b interfaces.ForwardIterator[T], cmp comparator.Comparator[T]) bool

EqualsC проверяет, равны ли все элементы двух диапазонов [a, b), используя пользовательский компаратор. Функция возвращает true, если все элементы равны, иначе false.

Параметры: - a: итератор, указывающий на начало первого диапазона. - b: итератор, указывающий на начало второго диапазона. - cmp: пользовательский компаратор для сравнения элементов.

Возвращает: - булево значение true, если все элементы равны, или false, если хотя бы один элемент не равен.

func EqualsRanges

func EqualsRanges[T comparable](
	aBegin interfaces.ValueIterator[T], aEnd interfaces.Iterator,
	bBegin interfaces.ValueIterator[T], bEnd interfaces.Iterator,
) bool

EqualsRanges проверяет, равны ли все элементы двух диапазонов [aBegin, aEnd) и [bBegin, bEnd), используя оператор сравнения ==. Функция возвращает true, если все элементы равны, иначе false.

Параметры: - aBegin: итератор, указывающий на начало первого диапазона. - aEnd: итератор, указывающий на конец первого диапазона (не включается в проверку). - bBegin: итератор, указывающий на начало второго диапазона. - bEnd: итератор, указывающий на конец второго диапазона (не включается в проверку).

Возвращает: - булево значение true, если все элементы равны, или false, если хотя бы один элемент не равен.

func EqualsRangesC

func EqualsRangesC[T any](
	aBegin interfaces.ValueIterator[T], aEnd interfaces.Iterator,
	bBegin interfaces.ValueIterator[T], bEnd interfaces.Iterator,
	cmp comparator.Comparator[T],
) bool

EqualsRangesC проверяет, равны ли все элементы двух диапазонов [aBegin, aEnd) и [bBegin, bEnd), используя пользовательский компаратор. Функция возвращает true, если все элементы равны, иначе false.

Параметры: - aBegin: итератор, указывающий на начало первого диапазона. - aEnd: итератор, указывающий на конец первого диапазона (не включается в проверку). - bBegin: итератор, указывающий на начало второго диапазона. - bEnd: итератор, указывающий на конец второго диапазона (не включается в проверку). - cmp: пользовательский компаратор для сравнения элементов.

Возвращает: - булево значение true, если все элементы равны, или false, если хотя бы один элемент не равен.

func Fill added in v0.4.0

func Fill[T any](begin interfaces.PointerIterator[T], end interfaces.Iterator, value T)

Fill заполняет диапазон значений от итератора `begin` до итератора `end` значением `value`. Итераторы должны поддерживать интерфейс PointerIterator и Iterator, предоставляющий методы Equals, Next и Ptr.

Параметры: - begin: начальный итератор, откуда начинается заполнение. - end: конечный итератор, где заканчивается заполнение. Значение по этому итератору не включается. - value: значение, которым заполняется диапазон.

func Find

func Find[T comparable](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
) (interfaces.ValueIterator[T], bool)

Find выполняет поиск элемента в диапазоне [begin, end) с использованием оператора сравнения ==. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало диапазона поиска. - end: итератор, указывающий на конец диапазона поиска (не включается в поиск). - value: значение, которое необходимо найти.

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FindC

func FindC[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
	cmp comparator.Comparator[T],
) (interfaces.ValueIterator[T], bool)

FindC выполняет поиск элемента в диапазоне [begin, end) с использованием пользовательского компаратора. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало диапазона поиска. - end: итератор, указывающий на конец диапазона поиска (не включается в поиск). - value: значение, которое необходимо найти. - cmp: пользовательский компаратор для сравнения элементов.

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FindFirstOf

FindFirstOf ищет первый элемент из диапазона [begin, end), который также содержится в диапазоне [sBegin, sEnd), используя оператор сравнения ==. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало первого диапазона. - end: итератор, указывающий на конец первого диапазона (не включается в поиск). - sBegin: итератор, указывающий на начало второго диапазона. - sEnd: итератор, указывающий на конец второго диапазона (не включается в поиск).

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FindFirstOfC

FindFirstOfC ищет первый элемент из диапазона [begin, end), который также содержится в диапазоне [sBegin, sEnd), используя пользовательский компаратор. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало первого диапазона. - end: итератор, указывающий на конец первого диапазона (не включается в поиск). - sBegin: итератор, указывающий на начало второго диапазона. - sEnd: итератор, указывающий на конец второго диапазона (не включается в поиск). - cmp: пользовательский компаратор для сравнения элементов.

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FindFirstOfIf

func FindFirstOfIf[T any](
	begin interfaces.ValueIterator[T], end interfaces.Iterator,
	sBegin interfaces.ValueIterator[T], sEnd interfaces.Iterator,
	predicate binaryPredicate[T],
) (interfaces.ValueIterator[T], bool)

FindFirstOfIf ищет первый элемент из диапазона [begin, end), который также содержится в диапазоне [sBegin, sEnd), для которого предикат возвращает true. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало первого диапазона. - end: итератор, указывающий на конец первого диапазона (не включается в поиск). - sBegin: итератор, указывающий на начало второго диапазона. - sEnd: итератор, указывающий на конец второго диапазона (не включается в поиск). - predicate: бинарный предикат, который применяется к элементам из двух диапазонов.

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FindIf

func FindIf[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	predicate unaryPredicate[T],
) (interfaces.ValueIterator[T], bool)

FindIf выполняет поиск элемента в диапазоне [begin, end), для которого предикат возвращает true. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало диапазона поиска. - end: итератор, указывающий на конец диапазона поиска (не включается в поиск). - predicate: унарный предикат, который применяется к каждому элементу диапазона.

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FindIfNot

func FindIfNot[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	predicate unaryPredicate[T],
) (interfaces.ValueIterator[T], bool)

FindIfNot выполняет поиск элемента в диапазоне [begin, end), для которого предикат возвращает false. Функция возвращает итератор на найденный элемент и булево значение, указывающее на успех поиска.

Параметры: - begin: итератор, указывающий на начало диапазона поиска. - end: итератор, указывающий на конец диапазона поиска (не включается в поиск). - predicate: унарный предикат, который применяется к каждому элементу диапазона.

Возвращает: - итератор на найденный элемент, если элемент найден, или nil, если элемент не найден. - булево значение true, если элемент найден, или false, если элемент не найден.

func FoldLeft added in v0.4.0

func FoldLeft[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	init T,
	f binaryFoldFunc[T],
) T

FoldLeft выполняет левую свёртку последовательности, начиная с инициализирующего значения init и применяя функцию f последовательно ко всем элементам от begin до end. Если итератор begin равен итератору end, функция вернёт значение init.

Аргументы: - begin: итератор, указывающий на первый элемент последовательности. - end: итератор, указывающий на конец последовательности (не включается в свёртку). - init: начальное значение для свёртки. - f: функция, которая будет применяться к элементам последовательности.

Возвращает: - значение типа T, полученное после применения функции f ко всем элементам последовательности.

func FoldLeftFirst added in v0.4.0

func FoldLeftFirst[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	f binaryFoldFunc[T],
) *T

FoldLeftFirst выполняет левую свёртку последовательности, используя в качестве начального значения первый элемент последовательности. Если последовательность пуста, возвращается nil.

Аргументы: - begin: итератор, указывающий на первый элемент последовательности. - end: итератор, указывающий на конец последовательности (не включается в свёртку). - f: функция, которая будет применяться к элементам последовательности.

Возвращает: - указатель на значение типа T, полученное после применения функции f ко всем элементам последовательности. - nil, если последовательность пуста.

func FoldRight added in v0.4.0

func FoldRight[T any](
	begin interfaces.BidirectionalIterator[T],
	end interfaces.Iterator,
	init T,
	f binaryFoldFunc[T],
) T

FoldRight выполняет правую свёртку последовательности, начиная с инициализирующего значения init и применяя функцию f последовательно ко всем элементам от end до begin в обратном порядке. Если итератор begin равен итератору end, функция вернёт значение init.

Аргументы: - begin: двунаправленный итератор, указывающий на первый элемент последовательности. - end: итератор, указывающий на конец последовательности (не включается в свёртку). - init: начальное значение для свёртки. - f: функция, которая будет применяться к элементам последовательности.

Возвращает: - значение типа T, полученное после применения функции f ко всем элементам последовательности в обратном порядке.

func FoldRightLast added in v0.4.0

func FoldRightLast[T any](
	begin interfaces.BidirectionalIterator[T],
	end interfaces.Iterator,
	f binaryFoldFunc[T],
) *T

FoldRightLast выполняет правую свёртку последовательности, используя в качестве начального значения последний элемент последовательности. Если последовательность пуста, возвращается nil.

Аргументы: - begin: двунаправленный итератор, указывающий на первый элемент последовательности. - end: итератор, указывающий на конец последовательности (не включается в свёртку). - f: функция, которая будет применяться к элементам последовательности.

Возвращает: - указатель на значение типа T, полученное после применения функции f ко всем элементам последовательности в обратном порядке. - nil, если последовательность пуста.

func ForEach

func ForEach[T any](begin interfaces.ValueIterator[T], end interfaces.Iterator, f forEachFunc[T])

ForEach применяет функцию к каждому элементу в диапазоне [begin, end).

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в применение функции). - f: функция, которая применяется к каждому элементу.

func ForEachIdx added in v0.4.0

func ForEachIdx[T any](begin interfaces.ValueIterator[T], end interfaces.Iterator, f forEachIdxFunc[T])

ForEachIdx применяет функцию к каждому элементу в диапазоне [begin, end), передавая в функцию элемент и его индекс.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в применение функции). - f: функция, которая применяется к каждому элементу.

func ForEachPtr

func ForEachPtr[T any](begin interfaces.PointerIterator[T], end interfaces.Iterator, f forEachPtrFunc[T])

ForEachPtr применяет функцию к указателю на каждый элемент в диапазоне [begin, end).

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в применение функции). - f: функция, которая применяется к каждому указателю на элемент.

func Generate added in v0.4.0

func Generate[T any](
	begin interfaces.PointerIterator[T],
	end interfaces.Iterator,
	g generatorFunc[T],
)

Generate заполняет последовательность значений, начиная с итератора begin и заканчивая итератором end, значениями, генерируемыми функцией g.

Параметры: - begin: итератор на начало последовательности, куда будут записаны результаты. - end: итератор на конец последовательности. - g: функция-генератор, создающая значения типа T.

func GenerateN added in v0.4.0

func GenerateN[T any](
	begin interfaces.PointerIterator[T],
	n uint,
	g generatorFunc[T],
)

GenerateN заполняет n элементов последовательности, начиная с итератора begin, значениями, генерируемыми функцией g.

Параметры: - begin: итератор на начало последовательности, куда будут записаны результаты. - n: количество элементов для заполнения. - g: функция-генератор, создающая значения типа T.

func LowerBound added in v0.4.0

func LowerBound[T cmp.Ordered](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
) interfaces.ValueIterator[T]

LowerBound находит первый элемент, который не меньше чем значение value в отсортированном диапазоне [begin, end).

Возвращает итератор на первый элемент, не меньший чем value. Если все элементы меньше value, возвращает end.

T - тип элементов, поддерживающий сравнение (cmp.Ordered).

func LowerBoundC added in v0.4.0

func LowerBoundC[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
	cmp comparator.Comparator[T],
) interfaces.ValueIterator[T]

LowerBoundC находит первый элемент, который не меньше чем значение value в отсортированном диапазоне [begin, end), используя пользовательский компаратор.

cmp - компаратор для сравнения элементов.

Возвращает итератор на первый элемент, не меньший чем value. Если все элементы меньше value, возвращает end.

func MakeHeap added in v0.4.0

func MakeHeap[T any](
	begin, end interfaces.RandomAccessIterator[T],
	cmp comparator.Less[T],
)

MakeHeap преобразует диапазон [begin, end) в кучу, используя предоставленный компаратор cmp.

Параметры: - begin: итератор на начало диапазона. - end: итератор на конец диапазона (не включая). - cmp: компаратор, определяющий порядок элементов.

func Max added in v0.4.0

Max находит максимальный элемент в диапазоне [begin, end) используя естественный порядок элементов (cmp.Ordered).

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). Возвращает итератор на максимальный элемент. Если диапазон пуст, возвращает begin.

func MaxC added in v0.4.0

MaxC находит максимальный элемент в диапазоне [begin, end) используя пользовательский компаратор.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). - cmp: компаратор, определяющий порядок элементов.

Возвращает итератор на максимальный элемент. Если диапазон пуст, возвращает begin.

func Min added in v0.4.0

Min находит минимальный элемент в диапазоне [begin, end) используя естественный порядок элементов (cmp.Ordered).

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). Возвращает итератор на минимальный элемент. Если диапазон пуст, возвращает begin.

func MinC added in v0.4.0

MinC находит минимальный элемент в диапазоне [begin, end) используя пользовательский компаратор.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). - cmp: компаратор, определяющий порядок элементов.

Возвращает итератор на минимальный элемент. Если диапазон пуст, возвращает begin.

func MinMax added in v0.4.0

func MinMax[T cmp.Ordered](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
) (min, max interfaces.ValueIterator[T])

MinMax находит одновременно минимальный и максимальный элементы в диапазоне [begin, end) используя естественный порядок элементов (cmp.Ordered).

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). Возвращает два итератора: первый на минимальный элемент, второй на максимальный. Если диапазон пуст, оба итератора указывают на begin.

func MinMaxC added in v0.4.0

func MinMaxC[T any](
	first interfaces.ValueIterator[T],
	last interfaces.Iterator,
	cmp comparator.Comparator[T],
) (min, max interfaces.ValueIterator[T])

MinMaxC находит одновременно минимальный и максимальный элементы в диапазоне [begin, end) используя пользовательский компаратор.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). - cmp: компаратор, определяющий порядок элементов.

Возвращает два итератора: первый на минимальный элемент, второй на максимальный. Если диапазон пуст, оба итератора указывают на begin.

min, max говорящие названия для возвращаемых значений, хоть и затеняют встроенные функции.

func NextBound added in v0.4.0

func NextBound(
	it interfaces.Iterator,
	bound interfaces.Iterator,
)

NextBound продвигает итератор it до тех пор, пока он не достигнет итератора bound.

Аргументы: - it: итератор, который нужно продвигать. - bound: итератор, до которого нужно продвигать it.

func NoneOf

func NoneOf[T any](begin interfaces.ValueIterator[T], end interfaces.Iterator, predicate unaryPredicate[T]) bool

NoneOf проверяет, удовлетворяет ли ни один элемент в диапазоне [begin, end) предикату. Функция возвращает true, если ни один элемент не удовлетворяет предикату, иначе false.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включается в проверку). - predicate: унарный предикат, который применяется к каждому элементу.

Возвращает: - булево значение true, если ни один элемент не удовлетворяет предикату, или false, если хотя бы один элемент удовлетворяет.

func PopHeap added in v0.4.0

func PopHeap[T any](
	begin, end interfaces.RandomAccessIterator[T],
	cmp comparator.Less[T],
)

PopHeap удаляет максимальный элемент из кучи и перестраивает её.

Параметры: - begin: итератор на начало диапазона. - end: итератор на конец диапазона (не включая). - cmp: компаратор, определяющий порядок элементов.

func Print added in v0.3.0

func Print[T any](
	begin interfaces.ValueIterator[T], end interfaces.Iterator,
) (n int, err error)

Print выводит значения, начиная с итератора begin до итератора end, используя fmt.Print.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). Возвращает: - n: количество записанных байтов. - err: ошибка, если она возникла.

func PrintF added in v0.3.0

func PrintF[T any](
	begin interfaces.ValueIterator[T], end interfaces.Iterator,
	format string,
) (n int, err error)

PrintF выводит значения, начиная с итератора begin до итератора end, используя fmt.Printf и заданный формат.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). - format: строка формата для вывода. Возвращает: - n: количество записанных байтов. - err: ошибка, если она возникла.

func PrintFFunc added in v0.3.0

func PrintFFunc[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	format string,
	f printfFunc,
) (totalN int, err error)

PrintFFunc выводит значения, начиная с итератора begin до итератора end, используя заданную функцию форматированного вывода.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). - format: строка формата для вывода. - f: функция форматированного вывода, соответствующая типу printfFunc. Возвращает: - totalN: общее количество записанных байтов. - err: ошибка, если она возникла.

func PrintFunc added in v0.3.0

func PrintFunc[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	f printFunc,
) (totalN int, err error)

PrintFunc выводит значения, начиная с итератора begin до итератора end, используя заданную функцию вывода.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). - f: функция вывода, соответствующая типу printFunc. Возвращает: - totalN: общее количество записанных байтов. - err: ошибка, если она возникла.

func Println added in v0.3.0

func Println[T any](
	begin interfaces.ValueIterator[T], end interfaces.Iterator,
) (n int, err error)

Println выводит значения, начиная с итератора begin до итератора end, используя fmt.Println.

Параметры: - begin: итератор, реализующий интерфейс ValueIterator, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (невключительно). Возвращает: - n: количество записанных байтов. - err: ошибка, если она возникла.

func PushHeap added in v0.4.0

func PushHeap[T any](
	begin, end interfaces.RandomAccessIterator[T],
	cmp comparator.Less[T],
)

PushHeap добавляет элемент в конец диапазона и перестраивает кучу, чтобы сохранить её свойства.

Параметры: - begin: итератор на начало диапазона. - end: итератор на конец диапазона (не включая). - cmp: компаратор, определяющий порядок элементов.

func Remove added in v0.4.0

func Remove[T comparable](
	begin interfaces.ForwardIterator[T],
	end interfaces.Iterator,
	value T,
) interfaces.ForwardIterator[T]

Remove удаляет все элементы, равные заданному значению `value`, из диапазона [begin, end). Элементы, которые не равны `value`, сохраняются в начале диапазона, а оставшиеся элементы не изменяются.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно). - value: значение, которое необходимо удалить из диапазона.

Возвращает: - итератор, указывающий на первый элемент, следующий за последним сохранённым элементом.

func RemoveC added in v0.4.0

func RemoveC[T any](
	begin interfaces.ForwardIterator[T],
	end interfaces.Iterator,
	value T,
	cmp comparator.Comparator[T],
) interfaces.ForwardIterator[T]

RemoveC удаляет все элементы, равные заданному значению `value`, из диапазона [begin, end), используя пользовательский компаратор для сравнения элементов. Элементы, которые не равны `value`, сохраняются в начале диапазона, а оставшиеся элементы не изменяются.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно). - value: значение, которое необходимо удалить из диапазона. - cmp: компаратор, используемый для сравнения элементов.

Возвращает: - итератор, указывающий на первый элемент, следующий за последним сохранённым элементом.

func RemoveIf added in v0.4.0

func RemoveIf[T any](
	begin interfaces.ForwardIterator[T],
	end interfaces.Iterator,
	predicate unaryPredicate[T],
) interfaces.ForwardIterator[T]

RemoveIf удаляет все элементы из диапазона [begin, end), которые удовлетворяют заданному предикату `predicate`. Элементы, которые не удовлетворяют предикату, сохраняются в начале диапазона, а оставшиеся элементы не изменяются.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно). - predicate: предикат, который проверяет, нужно ли удалить элемент.

Возвращает: - итератор, указывающий на первый элемент, следующий за последним сохранённым элементом.

func Replace added in v0.4.0

func Replace[T comparable](
	begin interfaces.PointerIterator[T],
	end interfaces.Iterator,
	oldValue T,
	newValue T,
)

Replace заменяет все вхождения значения oldValue на newValue в диапазоне от begin до end.

Параметры: - begin: итератор на начало последовательности, где производится замена. - end: итератор на конец последовательности. - oldValue: значение, которое нужно заменить. - newValue: значение, на которое нужно заменить oldValue.

func ReplaceCopy added in v0.4.0

func ReplaceCopy[T comparable](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	destBegin interfaces.PointerIterator[T],
	oldValue T,
	newValue T,
)

ReplaceCopy копирует элементы из диапазона [begin, end) в destBegin, заменяя все вхождения oldValue на newValue.

Параметры: - begin: итератор на начало исходной последовательности. - end: итератор на конец исходной последовательности. - destBegin: итератор на начало последовательности, куда будут копироваться элементы. - oldValue: значение, которое нужно заменить при копировании. - newValue: значение, на которое нужно заменить oldValue при копировании.

func ReplaceCopyIf added in v0.4.0

func ReplaceCopyIf[T comparable](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	destBegin interfaces.PointerIterator[T],
	predicate unaryPredicate[T],
	newValue T,
)

ReplaceCopyIf копирует элементы из диапазона [begin, end) в destBegin, заменяя все значения, которые удовлетворяют предикату, на newValue.

Параметры: - begin: итератор на начало исходной последовательности. - end: итератор на конец исходной последовательности. - destBegin: итератор на начало последовательности, куда будут копироваться элементы. - predicate: предикат, определяющий, какие элементы заменять при копировании. - newValue: значение, на которое нужно заменить элементы, удовлетворяющие предикату при копировании.

func ReplaceIf added in v0.4.0

func ReplaceIf[T any](
	begin interfaces.PointerIterator[T],
	end interfaces.Iterator,
	predicate unaryPredicate[T],
	newValue T,
)

ReplaceIf заменяет все значения, которые удовлетворяют предикату, на newValue в диапазоне от begin до end.

Параметры: - begin: итератор на начало последовательности, где производится замена. - end: итератор на конец последовательности. - predicate: предикат, определяющий, какие элементы заменять. - newValue: значение, на которое нужно заменить элементы, удовлетворяющие предикату.

func Reverse added in v0.4.0

func Reverse[T any](begin, end interfaces.BidirectionalIterator[T])

Reverse разворачивает элементы в последовательности, определяемой итераторами begin и end, используя двунаправленные итераторы.

Параметры: - begin: итератор на начало последовательности. - end: итератор на конец последовательности.

func ReverseCopy added in v0.4.0

func ReverseCopy[T any](
	begin, end interfaces.BidirectionalIterator[T],
	destBegin interfaces.PointerIterator[T],
) interfaces.PointerIterator[T]

ReverseCopy копирует элементы из диапазона [begin, end) в destBegin в обратном порядке.

Параметры: - begin: итератор на начало исходной последовательности. - end: итератор на конец исходной последовательности. - destBegin: итератор на начало последовательности, куда будут копироваться элементы в обратном порядке.

Возвращает итератор на конец целевой последовательности после копирования.

func Rotate added in v0.3.0

func Rotate[T any](begin, middle interfaces.ForwardIterator[T], end interfaces.Iterator) interfaces.Iterator

Rotate выполняет циклический сдвиг элементов в диапазоне [begin, end) так, чтобы элемент middle стал первым элементом диапазона. Элементы, находящиеся между begin и middle, будут перемещены в конец диапазона.

begin - итератор, указывающий на начало диапазона. middle - итератор, указывающий на элемент, который станет первым после сдвига. end - итератор, указывающий на конец диапазона.

Возвращает итератор на новый конец диапазона.

func RotateCopy added in v0.3.0

func RotateCopy[T any](
	begin, nBegin interfaces.ForwardIterator[T],
	end interfaces.Iterator,
	destBegin interfaces.PointerIterator[T],
) interfaces.PointerIterator[T]

RotateCopy выполняет циклический сдвиг элементов в диапазоне [begin, end) так, чтобы элемент nBegin стал первым элементом диапазона, и копирует результат в другой диапазон, начинающийся с destBegin.

begin - итератор, указывающий на начало исходного диапазона. nBegin - итератор, указывающий на элемент, который станет первым после сдвига. end - итератор, указывающий на конец исходного диапазона. destBegin - итератор, указывающий на начало целевого диапазона, в который будет скопирован результат.

Возвращает итератор на конец целевого диапазона после копирования.

func Sort added in v0.4.0

Sort выполняет сортировку диапазона [begin, end) с использованием алгоритма pdqsort. Параметры: - begin: итератор на начало диапазона. - end: итератор на конец диапазона (не включая).

func SortC added in v0.4.0

SortC выполняет сортировку диапазона [begin, end) с использованием алгоритма pdqsort и переданного компаратора. Параметры: - begin: итератор на начало диапазона. - end: итератор на конец диапазона (не включая). - cmp: компаратор, определяющий порядок элементов.

func SortHeap added in v0.4.0

func SortHeap[T any](
	begin, end interfaces.RandomAccessIterator[T],
	cmp comparator.Less[T],
)

SortHeap выполняет сортировку кучи на месте, упорядочивая элементы в диапазоне [begin, end).

Параметры: - begin: итератор на начало диапазона. - end: итератор на конец диапазона (не включая). - cmp: компаратор, определяющий порядок элементов.

func Swap added in v0.3.0

func Swap[T any](a, b *T)

Swap производит обмен значениями двух указателей.

Параметры: - a: указатель на первое значение. - b: указатель на второе значение.

func SwapIter added in v0.3.0

func SwapIter[T any](a, b interfaces.PointerIterator[T])

SwapIter производит обмен значениями, на которые указывают два итератора.

Параметры: - a: итератор, реализующий интерфейс PointerIterator, указывающий на первую переменную. - b: итератор, реализующий интерфейс PointerIterator, указывающий на вторую переменную.

func SwapRanges added in v0.3.0

func SwapRanges[T any](
	aBegin interfaces.PointerIterator[T],
	aEnd interfaces.Iterator,
	bBegin interfaces.PointerIterator[T],
)

SwapRanges производит обмен значениями между двумя диапазонами элементов.

Параметры: - aBegin: итератор, указывающий на начало первого диапазона. - aEnd: итератор, указывающий на конец первого диапазона (невключительно). - bBegin: итератор, указывающий на начало второго диапазона.

Функция последовательно обменивает значения, на которые указывают итераторы aBegin и bBegin, затем сдвигает оба итератора на следующий элемент и повторяет процесс до тех пор, пока aBegin не станет равным aEnd.

func TransformBinary added in v0.4.0

func TransformBinary[T1 any, T2 any, O any](
	begin1 interfaces.ValueIterator[T1],
	end1 interfaces.Iterator,
	begin2 interfaces.ValueIterator[T2],
	destBegin interfaces.PointerIterator[O],
	f binaryTransformFunc[T1, T2, O],
) interfaces.PointerIterator[O]

TransformBinary применяет бинарную функцию f к парам элементов из двух последовательностей, начиная с итераторов begin1 и begin2, и записывает результаты в последовательность, начинающуюся с destBegin.

Параметры: - begin1: итератор на начало первой последовательности. - end1: итератор на конец первой последовательности. - begin2: итератор на начало второй последовательности. - destBegin: итератор на начало последовательности, куда будут записаны результаты. - f: бинарная функция для преобразования.

Возвращает итератор на конец последовательности результатов.

func TransformUnary added in v0.4.0

func TransformUnary[T any, O any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	destBegin interfaces.PointerIterator[O],
	f unaryTransformFunc[T, O],
) interfaces.PointerIterator[O]

TransformUnary применяет унарную функцию f к каждому элементу последовательности, начиная с итератора begin и заканчивая итератором end, и записывает результаты в последовательность, начинающуюся с destBegin.

Параметры: - begin: итератор на начало последовательности исходных значений. - end: итератор на конец последовательности исходных значений. - destBegin: итератор на начало последовательности, куда будут записаны результаты. - f: унарная функция для преобразования.

Возвращает итератор на конец последовательности результатов.

func Unique added in v0.4.0

Unique удаляет дублирующиеся последовательные элементы в диапазоне [begin, end), оставляя только первые вхождения каждого элемента. Элементы считаются дубликатами, если они равны друг другу (==).

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно).

Возвращает: - итератор, указывающий на конец уникальной последовательности элементов.

func UniqueC added in v0.4.0

UniqueC удаляет дублирующиеся последовательные элементы в диапазоне [begin, end), оставляя только первые вхождения каждого элемента. Элементы считаются дубликатами, если они равны согласно пользовательскому компаратору.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно). - cmp: пользовательский компаратор, который определяет, равны ли два элемента.

Возвращает: - итератор, указывающий на конец уникальной последовательности элементов.

func UniqueIf added in v0.4.0

func UniqueIf[T any](
	begin interfaces.ForwardIterator[T],
	end interfaces.Iterator,
	predicate binaryPredicate[T],
) interfaces.ForwardIterator[T]

UniqueIf удаляет дублирующиеся последовательные элементы в диапазоне [begin, end), оставляя только первые вхождения каждого элемента. Элементы считаются дубликатами, если они удовлетворяют условию заданному предикатом.

Параметры: - begin: итератор, указывающий на начало диапазона. - end: итератор, указывающий на конец диапазона (не включительно). - predicate: бинарный предикат, который определяет, являются ли два элемента равными.

Возвращает: - итератор, указывающий на конец уникальной последовательности элементов.

func UpperBound added in v0.4.0

func UpperBound[T cmp.Ordered](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
) interfaces.ValueIterator[T]

UpperBound находит первый элемент, который больше чем значение value в отсортированном диапазоне [begin, end).

Возвращает итератор на первый элемент, больший чем value. Если все элементы не больше value, возвращает end.

T - тип элементов, поддерживающий сравнение (cmp.Ordered).

func UpperBoundC added in v0.4.0

func UpperBoundC[T any](
	begin interfaces.ValueIterator[T],
	end interfaces.Iterator,
	value T,
	cmp comparator.Comparator[T],
) interfaces.ValueIterator[T]

UpperBoundC находит первый элемент, который больше чем значение value в отсортированном диапазоне [begin, end), используя пользовательский компаратор.

cmp - компаратор для сравнения элементов.

Возвращает итератор на первый элемент, больший чем value. Если все элементы не больше value, возвращает end.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL