:relfileprefix: ../../../ [#boost-urls-params_encoded_base-find-03] = 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 `` [source,cpp,subs="verbatim,macros,-callouts"] ---- xref:boost/urls/params_encoded_base/iterator.adoc[iterator] find( 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 from the first param and proceeds forward until either the key is found or the end of the range is reached, in which case `end()` is returned. === Example [,cpp] ---- assert( url_view( "?first=John&last=Doe" ).encoded_params().find( "First", ignore_case )->value == "John" ); ---- === Effects [,cpp] ---- return this->find( this->begin(), key, ic ); ---- === Complexity Linear in `this->buffer().size()`. === Exception Safety Exceptions thrown on invalid input. == Exceptions |=== | Name | Thrown on | `system_error` | `key` contains an invalid percent-encoding. |=== == Return Value an iterator to the param == Parameters |=== | Name | Description | *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. |===