:relfileprefix: ../../../
[#boost-urls-params_base-iterator]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/params_base.adoc[pass:[params_base]]::iterator


A Bidirectional iterator to a query parameter


=== Synopsis

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

[source,cpp,subs="verbatim,macros,-callouts"]
----
class iterator;
----

===  Types
[cols=2,separator=¦]
|===
¦Name ¦Description
¦xref:boost/urls/params_base/iterator/difference_type.adoc[`difference_type`]  ¦

¦xref:boost/urls/params_base/iterator/iterator_category.adoc[`iterator_category`]  ¦

¦xref:boost/urls/params_base/iterator/pointer.adoc[`pointer`]  ¦

¦xref:boost/urls/params_base/iterator/reference.adoc[`reference`]  ¦

¦xref:boost/urls/params_base/iterator/value_type.adoc[`value_type`]  ¦

|===
===  Member Functions
[cols=2,separator=¦]
|===
¦Name ¦Description
¦xref:boost/urls/params_base/iterator/2constructor.adoc[`iterator`] [.small]#[constructor]# ¦
¦xref:boost/urls/params_base/iterator/operator_not_eq.adoc[`operator!=`]  ¦

¦xref:boost/urls/params_base/iterator/operator_star.adoc[`operator*`]  ¦

¦xref:boost/urls/params_base/iterator/operator_inc.adoc[`operator++`]  ¦
¦xref:boost/urls/params_base/iterator/operator_dec.adoc[`operator--`]  ¦
¦xref:boost/urls/params_base/iterator/operator_ptr.adoc[`operator->`]  ¦

¦xref:boost/urls/params_base/iterator/operator_assign.adoc[`operator=`]  ¦

¦xref:boost/urls/params_base/iterator/operator_eq.adoc[`operator==`]  ¦

|===

=== Description


Objects of this type allow iteration
through the parameters in the query.
Any percent-escapes in returned strings
are decoded first.
The values returned are read-only;
changes to parameters must be made
through the container instead, if the
container supports modification.




The strings produced when iterators are
dereferenced belong to the iterator and
become invalidated when that particular
iterator is incremented, decremented,
or destroyed.
[NOTE]

The implementation may use temporary,
recycled storage to store decoded
strings. These iterators are meant
to be used ephemerally. That is, for
short durations such as within a
function scope. Do not store
iterators with static storage
duration or as long-lived objects.



