std.algorithm.searching.find  - multiple declarations
				Function find
Finds an individual element in an input range.
Elements of haystack are compared with needle by using predicate
pred with pred(haystack.
find performs Ο(walkLength(haystack)) evaluations of pred.
						
				InputRange find(alias pred, InputRange, Element)
				(
				
				  InputRange haystack,
				
				  scope Element needle
				
				)
				
				if (isInputRange!InputRange && is(typeof(binaryFun!pred(haystack
				
				InputRange find(alias pred, InputRange)
				(
				
				  InputRange haystack
				
				)
				
				if (isInputRange!InputRange);
				
				
				R1 find(alias pred, R1, R2)
				(
				
				  R1 haystack,
				
				  scope R2 needle
				
				)
				
				if (isForwardRange!R1 && isForwardRange!R2 && is(typeof(binaryFun!pred(haystack
				The predicate is passed to binaryFun, and can either accept a
string, or any callable that can be executed via pred(element, element).
To find the last occurrence of needle in a
bidirectional haystack,
call find(retro(haystack), needle). See std.
If no needle is provided, pred(haystack will be evaluated on each
element of the input range.
If input is a forward range,
needle can be a forward range too.
In this case startsWith!pred(haystack, needle) is evaluated on each evaluation.
Note
find behaves similar to dropWhile in other languages.
Complexity
find performs Ο(walkLength(haystack)) evaluations of pred.
    There are specializations that improve performance by taking
    advantage of bidirectional
    or random access
    ranges (where possible).
Parameters
| Name | Description | 
|---|---|
| pred | The predicate for comparing each element with the needle, defaulting to equality "a == b".
           The negated predicate"a != b"can be used to search instead for the first
           element not matching the needle. | 
| haystack | The input range searched in. | 
| needle | The element searched for. | 
Returns
haystack advanced such that the front element is the one searched for;
    that is, until binaryFun!pred(haystack is true. If no
    such position exists, returns an empty haystack.
See ALso
Example
import stdExample
Case-insensitive find of a string
import stdExample
auto arr = [ 1, 2, 3, 4, 1 ];
writeln(find!("a > 2")(arr)); // [3, 4, 1]
// with predicate alias
bool pred(int x) { return x + 1 > 1.5; }
writeln(find!(pred)(arr)); // arr
Example
import stdFunction find
Finds two or more needles into a haystack. The predicate pred is used throughout to compare elements. By default, elements are
compared for equality.
						
				Tuple!(Range,size_t) find(alias pred, Range, Ranges...)
				(
				
				  Range haystack,
				
				  Ranges needles
				
				)
				
				if (Ranges
				Parameters
| Name | Description | 
|---|---|
| pred | The predicate to use for comparing elements. | 
| haystack | The target of the search. Must be an input range.
If any of needlesis a range with elements comparable to
elements inhaystack, thenhaystackmust be a
forward range
such that the search can backtrack. | 
| needles | One or more items to search for. Each of needlesmust
be either comparable to one element inhaystack, or be itself a
forward range with elements comparable with elements inhaystack. | 
Returns
A tuple containing haystack positioned to match one of the
needles and also the 1-based index of the matching element in needles (0 if none of needles matched, 1 if needles[0]
matched, 2 if needles[1] matched...). The first needle to be found
will be the one that matches. If multiple needles are found at the
same spot in the range, then the shortest one is the one which matches
(if multiple needles of the same length are found at the same spot (e.g
"a" and 'a'), then the left-most of them in the argument list
matches).
The relationship between haystack and needles simply means
that one can e.g. search for individual ints or arrays of ints in an array of ints. In addition, if elements are
individually comparable, searches of heterogeneous types are allowed
as well: a double[] can be searched for an int or a short[], and conversely a long can be searched for a float
or a double[]. This makes for efficient searches without the need
to coerce one side of the comparison into the other's side type.
The complexity of the search is Ο(haystack). (For needles that are individual items, length
is considered to be 1.) The strategy used in searching several
subranges at once maximizes cache usage by moving in haystack as
few times as possible.
Example
import stdFunction find
Finds needle in haystack efficiently using the
  Boyer-Moore method.
						
				RandomAccessRange find(RandomAccessRange, alias pred, InputRange)
				(
				
				  RandomAccessRange haystack,
				
				  scope BoyerMooreFinder!(pred,InputRange) needle
				
				);
						
					
				Parameters
| Name | Description | 
|---|---|
| haystack | A random-access range with length and slicing. | 
| needle | A BoyerMooreFinder. | 
Returns
haystack advanced such that needle is a prefix of it (if no
 such position exists, returns haystack advanced to termination).
Example
import std