#include
#include
#include
#include
#include
#include
using namespace boost;
using namespace boost::multi_index;
using namespace std;
struct Employee{
int id;
string name;
int age;
Employee():id(0),age(0){}
Employee(int id_,string name_,int age_):id(id_),name(name_),age(age_){}
friend ostream& operator<<(ostream& os,const Employee& e)
{
os<,
composite_key<
Employee,
member,
member > >,
ordered_unique< tag, member >,
ordered_non_unique< tag, member >,
ordered_non_unique< tag, member >
>
> EmployeeContainer;
//模板函数,用法: print_out_by(multi_index_container_instance)
template
void print_out_by(const MultiIndexContainer &s)
{
/* obtain a reference to the index tagged by Tag */
const typename boost::multi_index::index::type &i = get(s);
typedef typename MultiIndexContainer::value_type value_type;
/* dump the elements of the index to cout */
std::copy(i.begin(), i.end(), std::ostream_iterator(std::cout));
}
int main(){
EmployeeContainer employee;
employee.insert(Employee(1,"罗一",21));
employee.insert(Employee(2,"周二",18));
employee.get().insert(Employee(6,"郑六",21));
employee.insert(Employee(7,"黄七",20));
employee.insert(Employee(3,"张三",19));
employee.insert(Employee(4,"李四",28));
employee.insert(Employee(5,"李四",23));
employee.insert(Employee(8,"王八",19));
employee.insert(Employee(10,"杨十",22));
//1 打印相关信息
std::cout<<"Employee by ID"<(employee);
std::cout<(employee);
std::cout<(employee);
std::cout<(employee);
return 0;
}