[#boost-urls-params_encoded_base-count]
= xref:boost/urls/params_encoded_base/count.adoc[boost::urls::params&lowbar;encoded&lowbar;base::count]
:relfileprefix: ../../../
:mrdocs:

Return the number of matching keys

== Synopsis

Declared in `&lt;https://www.github.com/boostorg/url/blob/develop/include/boost/url/params_encoded_base.hpp#L317[boost&sol;url&sol;params&lowbar;encoded&lowbar;base&period;hpp]&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::size&lowbar;t
count(
    xref:boost/urls/pct_string_view.adoc[pct&lowbar;string&lowbar;view] key,
    xref:boost/urls/ignore_case_param.adoc[ignore&lowbar;case&lowbar;param] ic = &lcub;&rcub;) const noexcept;
----

== Description

This function examines the parameters in the container to find the number of matches for the specified key, which may contain percent escapes&period; The comparison is performed as if all escaped characters were decoded first&period;

== Example
[,cpp]
----
assert( url_view( "?first=John&last=Doe" ).encoded_params().count( "first" ) == 1 );
----
== Complexity
Linear in `this&hyphen;&gt;buffer()&period;size()`&period;

== Exception Safety
Exceptions thrown on invalid input&period;

== Exceptions

[cols=2]
|===
| Name
| Thrown on
| `system&lowbar;error`
| `key` contains an invalid percent&hyphen;encoding&period;
|===

== Return Value

The number of matching keys&period;

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The key to match&period; By default, a case&hyphen;sensitive comparison is used&period;
| *ic*
| An optional parameter&period; If the value xref:boost/urls/ignore_case.adoc[`ignore&lowbar;case`] is passed here, the comparison is case&hyphen;insensitive&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
