Boost logo

Boost Users :

Subject: Re: [Boost-users] [multi_index_container] push_back?
From: Ovanes Markarian (om_boost_at_[hidden])
Date: 2008-09-09 09:43:48


It depends on what your container consists of. Ordered Index allows only
insert. If it would support sequenced or random access policies you would
have the push_back member.

Regards,
Ovanes

On Tue, Sep 9, 2008 at 3:19 PM, Robert Jones <robertgbjones_at_[hidden]>wrote:

> Still having a little teething trouble with multi_index_container. This
> code,
>
> #include <string>
> #include <boost/multi_index_container.hpp>
> #include <boost/multi_index/ordered_index.hpp>
> #include <boost/multi_index/identity.hpp>
> #include <boost/multi_index/member.hpp>
>
> using namespace boost;
> using namespace boost :: multi_index;
>
> struct Employee
> {
> int id;
> std :: string name;
> };
>
> bool operator < ( Employee const & l, Employee const & r ) { return
> l.id < r.id; }
>
> int main( )
> {
> typedef multi_index_container<
> Employee,
> indexed_by<
> ordered_unique<identity<Employee> >,
> ordered_non_unique<member<Employee, std :: string, & Employee :: name>
> >
> >
> > EmployeeSet;
>
> Employee employees[ ] = {
> { 1, "Adam" },
> { 2, "Craig" },
> { 3, "Brian" },
> { 4, "Dave" },
> };
>
> // EmployeeSet eSet( employees, employees + sizeof( employees ) /
> sizeof( Employee ) );
> EmployeeSet eSet;
> std :: copy( employees, employees + sizeof( employees ) / sizeof(
> Employee ), std :: back_inserter( eSet ) );
>
> return 0;
> }
>
> Gives me an error stating there is no push_back method on the container.
>
> /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/bits/stl_iterator.h:364:
> error: 'class boost::multi_index::multi_index_con
> tainer<Employee,
>
> boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_index::identity<Employee
> >, mpl_::na, mpl_::na>,
> boost::multi_index::ordered_non_unique<boost::multi_index::member<Employee,
> std::string, &Employ
> ee::name>, mpl_::na, mpl_::na>, mpl_::na, mpl_::na, mpl_::na,
> mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na
> , mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na,
> mpl_::na, mpl_::na, mpl_::na>, std::allocator<Employee> >'
> has no member named 'push_back'
>
> is there something I'm missing out?
>
> Thanks, Rob.
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net