/** * @packageDocumentation * @module std */ import { IForwardIterator } from "../iterator/IForwardIterator"; import { IPointer } from "../functional/IPointer"; import { Pair } from "../utility/Pair"; import { BinaryPredicator } from "../internal/functional/BinaryPredicator"; import { UnaryPredicator } from "../internal/functional/UnaryPredicator"; /** * Apply a function to elements in range. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param fn The function to apply. * * @return The function *fn* itself. */ export declare function for_each, InputIterator>>, Func extends (val: IPointer.ValueType) => any>(first: InputIterator, last: InputIterator, fn: Func): Func; /** * Apply a function to elements in steps. * * @param first Input iteartor of the starting position. * @param n Steps to maximum advance. * @param fn The function to apply. * * @return Iterator advanced from *first* for *n* steps. */ export declare function for_each_n, InputIterator>>, Func extends (val: IPointer.ValueType) => any>(first: InputIterator, n: number, fn: Func): InputIterator; /** * Test whether all elements meet a specific condition. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A function predicates the specific condition. * * @return Whether the *pred* returns always `true` for all elements. */ export declare function all_of, InputIterator>>>(first: InputIterator, last: InputIterator, pred: UnaryPredicator>): boolean; /** * Test whether any element meets a specific condition. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A function predicates the specific condition. * * @return Whether the *pred* returns at least a `true` for all elements. */ export declare function any_of, InputIterator>>>(first: InputIterator, last: InputIterator, pred: UnaryPredicator>): boolean; /** * Test whether any element doesn't meet a specific condition. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A function predicates the specific condition. * * @return Whether the *pred* doesn't return `true` for all elements. */ export declare function none_of, InputIterator>>>(first: InputIterator, last: InputIterator, pred: UnaryPredicator>): boolean; /** * Test whether two ranges are equal. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param pred A binary function predicates two arguments are equal. * * @return Whether two ranges are equal. */ export declare function equal, InputIterator1>>, InputIterator2 extends Readonly, InputIterator2>>>(first1: InputIterator1, last1: InputIterator1, first2: InputIterator2): boolean; /** * Test whether two ranges are equal. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param pred A binary function predicates two arguments are equal. * * @return Whether two ranges are equal. */ export declare function equal, InputIterator1>>, InputIterator2 extends Readonly, InputIterator2>>>(first1: InputIterator1, last1: InputIterator1, first2: InputIterator2, pred: BinaryPredicator, IPointer.ValueType>): boolean; /** * Compare lexicographically. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param last2 Input iterator of the last position of the 2nd range. * @param comp A binary function predicates *x* element would be placed before *y*. When returns `true`, then *x* precedes *y*. Default is {@link less}. * * @return Whether the 1st range precedes the 2nd. */ export declare function lexicographical_compare, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2, last2: Iterator2, comp?: BinaryPredicator>): boolean; /** * Find a value in range. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param val The value to find. * * @return Iterator to the first element {@link equal to equal_to} the value. */ export declare function find, InputIterator>>>(first: InputIterator, last: InputIterator, val: IPointer.ValueType): InputIterator; /** * Find a matched condition in range. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A function predicates the specific condition. * * @return Iterator to the first element *pred* returns `true`. */ export declare function find_if, InputIterator>>>(first: InputIterator, last: InputIterator, pred: UnaryPredicator>): InputIterator; /** * Find a mismatched condition in range. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A function predicates the specific condition. * * @return Iterator to the first element *pred* returns `false`. */ export declare function find_if_not, InputIterator>>>(first: InputIterator, last: InputIterator, pred: UnaryPredicator>): InputIterator; /** * Find the last sub range. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param last2 Input iterator of the last position of the 2nd range. * * @return Iterator to the first element of the last sub range. */ export declare function find_end, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2, last2: Iterator2): Iterator1; /** * Find the last sub range. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param last2 Input iterator of the last position of the 2nd range. * @param pred A binary function predicates two arguments are equal. * * @return Iterator to the first element of the last sub range. */ export declare function find_end, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2, last2: Iterator2, pred: BinaryPredicator, IPointer.ValueType>): Iterator1; /** * Find the first sub range. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param last2 Input iterator of the last position of the 2nd range. * * @return Iterator to the first element of the first sub range. */ export declare function find_first_of, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2, last2: Iterator2): Iterator1; /** * Find the first sub range. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param last2 Input iterator of the last position of the 2nd range. * @param pred A binary function predicates two arguments are equal. * * @return Iterator to the first element of the first sub range. */ export declare function find_first_of, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2, last2: Iterator2, pred: BinaryPredicator, IPointer.ValueType>): Iterator1; /** * Find the first adjacent element. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A binary function predicates two arguments are equal. Default is {@link equal_to}. * * @return Iterator to the first element of adjacent find. */ export declare function adjacent_find, InputIterator>>>(first: InputIterator, last: InputIterator, pred?: BinaryPredicator>): InputIterator; /** * Search sub range. * * @param first1 Forward iteartor of the first position of the 1st range. * @param last1 Forward iterator of the last position of the 1st range. * @param first2 Forward iterator of the first position of the 2nd range. * @param last2 Forward iterator of the last position of the 2nd range. * * @return Iterator to the first element of the sub range. */ export declare function search, ForwardIterator1>>, ForwardIterator2 extends Readonly, ForwardIterator2>>>(first1: ForwardIterator1, last1: ForwardIterator1, first2: ForwardIterator2, last2: ForwardIterator2): ForwardIterator1; /** * Search sub range. * * @param first1 Forward iteartor of the first position of the 1st range. * @param last1 Forward iterator of the last position of the 1st range. * @param first2 Forward iterator of the first position of the 2nd range. * @param last2 Forward iterator of the last position of the 2nd range. * @param pred A binary function predicates two arguments are equal. * * @return Iterator to the first element of the sub range. */ export declare function search, ForwardIterator1>>, ForwardIterator2 extends Readonly, ForwardIterator2>>>(first1: ForwardIterator1, last1: ForwardIterator1, first2: ForwardIterator2, last2: ForwardIterator2, pred: BinaryPredicator, IPointer.ValueType>): ForwardIterator1; /** * Search specific and repeated elements. * * @param first Forward iteartor of the first position. * @param last Forward iterator of the last position. * @param count Count to be repeated. * @param val Value to search. * @param pred A binary function predicates two arguments are equal. Default is {@link equal_to}. * * @return Iterator to the first element of the repetition. */ export declare function search_n, ForwardIterator>>>(first: ForwardIterator, last: ForwardIterator, count: number, val: IPointer.ValueType, pred?: BinaryPredicator>): ForwardIterator; /** * Find the first mistmached position between two ranges. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * * @return A {@link Pair} of mismatched positions. */ export declare function mismatch, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2): Pair; /** * Find the first mistmached position between two ranges. * * @param first1 Input iteartor of the first position of the 1st range. * @param last1 Input iterator of the last position of the 1st range. * @param first2 Input iterator of the first position of the 2nd range. * @param pred A binary function predicates two arguments are equal. * * @return A {@link Pair} of mismatched positions. */ export declare function mismatch, Iterator1>>, Iterator2 extends Readonly, Iterator2>>>(first1: Iterator1, last1: Iterator1, first2: Iterator2, pred: BinaryPredicator, IPointer.ValueType>): Pair; /** * Count matched value in range. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param val The value to count. * * @return The matched count. */ export declare function count, InputIterator>>>(first: InputIterator, last: InputIterator, val: IPointer.ValueType): number; /** * Count matched condition in range. * * @param first Input iteartor of the first position. * @param last Input iterator of the last position. * @param pred A function predicates the specific condition. * * @return The matched count. */ export declare function count_if, InputIterator>>>(first: InputIterator, last: InputIterator, pred: UnaryPredicator>): number; //# sourceMappingURL=iterations.d.ts.map