set::set

explicit set(const Pred& comp = Pred(), const A& al = A());
set(const set& x);
set(const value_type *first, const value_type *last,
    const Pred& comp = Pred(), const A& al = A());

The constructors with an argument named comp store the function object so that it can be later returned by calling key_comp(). All constructors also store the allocator object al (or, for the copy constructor, x.get_allocator()) in allocator and initialize the controlled sequence. The first constructor specifies an empty initial controlled sequence. The second constructor specifies a copy of the sequence controlled by x. The last constructor specifies the sequence of element values [first, last).

In this implementation, if a translator does not support member template functions, the template:

template<class InIt>
    set(InIt first, InIt last,
        const Pred& comp = Pred(), const A& al = A());

is replaced by:

set(const value_type *first, const value_type *last,
    const Pred& comp = Pred(), const A& al = A());