¿Por qué lo necesitarías?
Las funciones de miembro solo sirven al propósito si la implementación se puede hacer más eficiente (set :: find es más eficiente que std :: find() en un conjunto).
PS Ah, y si se quiere evitar ubicua .begin()
, en .end()
llamadas, utilizar Boost Range Algorithms. dulce de azúcar sintáctica
Una gama aleatoria Boost muestra inspirada:
#include <boost/range/adaptors.hpp>
#include <boost/range/algorithm.hpp>
#include <boost/pending/integer_range.hpp>
using namespace boost::adaptors;
static int mod7(int v)
{ return v % 7; }
int main()
{
std::vector<int> v;
boost::copy(
boost::make_integer_range(1,100) | transformed(mod7),
std::back_inserter(v));
boost::sort(v);
boost::copy(
v | reversed | uniqued,
std::ostream_iterator<int>(std::cout, ", "));
}
por qué habría que así lo requieran? las funciones miembro solo sirven para el propósito si la implementación se puede hacer más eficiente (set :: find es más eficiente que std :: find() en un conjunto).Ah, y si quiere evitar las omnipresentes llamadas '.begin()', en '.end()', use [Boost Range Algorithms] (http://www.boost.org/doc/libs/1_47_0/libs/ range/doc/html/range/reference/algorithms/introduction.html). Dulce azúcar sintáctico – sehe
@sehe: o * menos * eficiente, como 'std :: list :: sort()' :-) –
@Kerrek: 'std :: list :: sort' es especial,' std :: sort' requiere 'RandomAccessIterator', por lo que no podría funcionar para las listas. –