1
0
Fork 0
mirror of https://github.com/bolero-MURAKAMI/Sprout synced 2024-11-12 21:09:01 +00:00
Sprout/source/libs/string/basic_string/find.rst

95 lines
2.2 KiB
ReStructuredText
Raw Normal View History

2013-09-13 08:22:10 +00:00
.. _sprout-string-basic_string-find:
###############################################################################
find
###############################################################################
Interface
========================================
.. sourcecode:: c++
template<std::size_t N2>
SPROUT_CONSTEXPR size_type find(basic_string<T, N2, Traits> const& str, size_type pos = 0) const SPROUT_NOEXCEPT;
Effects
========================================
| Determines the lowest position xpos, if possible, such that both of the following conditions obtain:
* ``pos <= xpos and xpos + str.size() <= size();``
* ``traits_type::eq(at(xpos + I), str.at(I))`` for all elements I of the string controlled by str.
Returns
========================================
| xpos if the function can determine such a value for xpos. Otherwise, returns npos.
Remarks
========================================
| Uses ``traits_type::eq()``.
Examples
========================================
.. sourcecode:: c++
#include <sprout/string.hpp>
using namespace sprout;
SPROUT_STATIC_CONSTEXPR auto input = string<8>("madocchi");
SPROUT_STATIC_CONSTEXPR auto result = input.find("cchi");
static_assert(result == 4, "a found position is 4.");
Complexity
========================================
| Recursive function invocations in *O(logN)* (logarithmic) depth.
.. note::
The current implementation is incomplete. *O(N)* (linear) depth.
----
Interface
========================================
.. sourcecode:: c++
SPROUT_CONSTEXPR size_type find(value_type const* s, size_type pos, size_type n) const;
Returns
========================================
|
----
Interface
========================================
.. sourcecode:: c++
SPROUT_CONSTEXPR size_type find(value_type const* s, size_type pos = 0) const;
Returns
========================================
|
----
Interface
========================================
.. sourcecode:: c++
SPROUT_CONSTEXPR size_type find(value_type c, size_type pos = 0) const;
Returns
========================================
|
Header
========================================
| ``sprout/string/string.hpp``
| Convenience header: ``sprout/string.hpp``