자료구조 Vector 클래스
(사용 가능한 버전 정보가 없으며 Git에만 있을 수 있음)
소개
Vector는 자동으로 늘어나고 축소되는 연속 버퍼의 값 시퀀스입니다. 값의 인덱스가 버퍼의 인덱스에 직접 매핑되고 성장 인자가 특정 배수 또는 지수에 구속되지 않기 때문에 가장 효율적인 순차 구조입니다.
강점
- 배열 구문(대괄호)을 지원합니다.
- 동일한 수의 값에 대해 배열보다 적은 전체 메모리를 사용합니다.
- 크기가 충분히 낮아지면 할당된 메모리를 자동으로 해제합니다.
- 용량이 2의 거듭제곱일 필요는 없습니다.
- get(), set(), push(), pop()은 모두 O(1)입니다.
약점
- shift(), unshift(), insert() 및 remove()는 모두 O(n)입니다.
클래스 개요
class Ds\Vector implements Ds\Sequence, ArrayAccess {
/* Constants */
const int MIN_CAPACITY = 10;
/* Methods */
public allocate(int $capacity): void
public apply(callable $callback): void
public capacity(): int
public clear(): void
public contains(mixed ...$values): bool
public copy(): Ds\Vector
public filter(callable $callback = ?): Ds\Vector
public find(mixed $value): mixed
public first(): mixed
public get(int $index): mixed
public insert(int $index, mixed ...$values): void
public isEmpty(): bool
public join(string $glue = ?): string
public last(): mixed
public map(callable $callback): Ds\Vector
public merge(mixed $values): Ds\Vector
public pop(): mixed
public push(mixed ...$values): void
public reduce(callable $callback, mixed $initial = ?): mixed
public remove(int $index): mixed
public reverse(): void
public reversed(): Ds\Vector
public rotate(int $rotations): void
public set(int $index, mixed $value): void
public shift(): mixed
public slice(int $index, int $length = ?): Ds\Vector
public sort(callable $comparator = ?): void
public sorted(callable $comparator = ?): Ds\Vector
public sum(): int|float
public toArray(): array
public unshift(mixed $values = ?): void
}
미리 정의된 상수
Ds\Vector::MIN_CAPACITY
변경 로그
버전 | 설명 |
---|---|
PECL ds 1.3.0 | 클래스는 이제 ArrayAccess를 구현합니다. |
목차
- Ds\Vector::allocate — 필요한 용량에 충분한 메모리 할당
- Ds\Vector::apply — 각 값에 콜백 함수를 적용하여 모든 값을 업데이트합니다.
- Ds\Vector::capacity — 현재 용량을 반환합니다.
- Ds\Vector::clear — 모든 값을 제거합니다
- Ds\Vector::__construct — 새 인스턴스를 만듭니다.
- Ds\Vector::contains — 벡터에 주어진 값이 포함되어 있는지 확인
- Ds\Vector::copy — 벡터의 얕은 복사본을 반환합니다.
- Ds\Vector::count — 컬렉션의 값 수를 반환합니다.
- Ds\Vector::filter — 포함할 값을 결정하기 위해 콜러블을 사용하여 새 벡터를 만듭니다.
- Ds\Vector::find — 값의 인덱스를 찾으려고 시도합니다.
- Ds\Vector::first — 벡터의 첫 번째 값을 반환합니다.
- Ds\Vector::get — 주어진 인덱스의 값을 반환
- Ds\Vector::insert — 주어진 인덱스에 값을 삽입
- Ds\Vector::isEmpty — 벡터가 비어 있는지 여부를 반환합니다.
- Ds\Vector::join — 모든 값을 문자열로 결합
- Ds\Vector::jsonSerialize — JSON으로 변환할 수 있는 표현을 반환합니다.
- Ds\Vector::last — 마지막 값을 반환
- Ds\Vector::map — 각 값에 콜백을 적용한 결과를 반환합니다.
- Ds\Vector::merge — 주어진 모든 값을 벡터에 더한 결과를 반환합니다.
- Ds\Vector::pop — 마지막 값을 제거하고 반환
- Ds\Vector::push — 벡터의 끝에 값을 추가합니다.
- Ds\Vector::reduce — 콜백 함수를 사용하여 벡터를 단일 값으로 줄입니다.
- Ds\Vector::remove — 인덱스로 값을 제거하고 반환
- Ds\Vector::reverse — 벡터를 제자리에서 반전
- Ds\Vector::reversed — 반전된 사본을 반환합니다.
- Ds\Vector::rotate — 주어진 회전 수만큼 벡터를 회전합니다.
- Ds\Vector::set — 지정된 인덱스에서 값을 업데이트합니다.
- Ds\Vector::shift — 첫 번째 값을 제거하고 반환
- Ds\Vector::slice — 주어진 범위의 하위 벡터를 반환합니다.
- Ds\Vector::sort — 벡터를 제자리에서 정렬
- Ds\Vector::sorted — 정렬된 복사본을 반환합니다.
- Ds\Vector::sum — 벡터에 있는 모든 값의 합을 반환합니다.
- Ds\Vector::toArray — 벡터를 배열로 변환
- Ds\Vector::unshift — 벡터 앞에 값을 추가합니다.