diff --git a/BaseLib/Algorithm.h b/BaseLib/Algorithm.h
index 8b93068185d181911bef8a0bdbb3c8662bc19ea9..9324b309bb5d5c3e670253142d9b972a5d401f52 100644
--- a/BaseLib/Algorithm.h
+++ b/BaseLib/Algorithm.h
@@ -225,4 +225,21 @@ bool contains(Container const& container,
            container.end();
 }
 
+
+/// Returns the index of first element in container or, if the element is not
+/// found a std::size_t maximum value.
+///
+/// The maximum value of std::size_t is chosen, because such an index cannot
+/// exist in a container; the maximum index is std::size_t::max-1.
+template <typename Container>
+std::size_t findIndex(Container const& container,
+                      typename Container::value_type const& element)
+{
+    auto const it = std::find(container.begin(), container.end(), element);
+    if (it == container.end())
+    {
+        return std::numeric_limits<std::size_t>::max();
+    }
+    return std::distance(container.begin(), it);
+}
 }  // namespace BaseLib