:relfileprefix: ../../../
[#boost-urls-params_encoded_base-find-00]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/params_encoded_base.adoc[pass:[params_encoded_base]]::find


Find a matching key


=== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/params_encoded_base.hpp#L431[boost/url/params_encoded_base.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
xref:boost/urls/params_encoded_base/iterator.adoc[iterator]
find(
    xref:boost/urls/params_encoded_base/iterator.adoc[iterator] from,
    xref:boost/urls/pct_string_view.adoc[pct_string_view] key,
    xref:boost/urls/ignore_case_param.adoc[ignore_case_param] ic = = {}) const noexcept;
----

=== Description


This function examines the parameters
in the container to find a match for
the specified key, which may contain
percent escapes.
The comparison is performed as if all
escaped characters were decoded first.




The search starts at `from`
and proceeds forward until either the
key is found or the end of the range is
reached, in which case `end()` is
returned.
[,cpp]
----
url_view u( "?First=John&Last=Doe" );

assert( u.encoded_params().find( "first" ) != u.encoded_params().find( "first", ignore_case ) );
----

=== Linear in `this-&gt;buffer().size()`.

=== Exceptions thrown on invalid input.



=== Exceptions

|===
| Name | Thrown on

| ``key``
| 
contains an invalid percent-encoding.

|===


=== Return Value


an iterator to the param



=== Parameters

|===
| Name | Description 

| *from*
| 
The position to begin the
search from. This can be `end()`.

| *key*
| 
The key to match.
By default, a case-sensitive
comparison is used.

| *ic*
| 
An optional parameter. If
the value
xref:boost/urls/ignore_case.adoc[ignore_case]
is passed
here, the comparison is
case-insensitive.

|===




