gpt4 book ai didi

c++ - boost multi_index 示例 : error: invalid operands to binary expression

转载 作者:行者123 更新时间:2023-11-28 04:57:32 25 4
gpt4 key购买 nike

只是尝试基本的 boost::multi_index 示例并接收和错误:

#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::multi_index;

struct employee
{
int id;
std::string name;

employee(int id, const std::string &name) : id(id), name(name) {}

bool operator<(const employee &e) const { return id < e.id; }
};

// define a multiply indexed set with indices by id and name
typedef multi_index_container<
employee,
indexed_by<
// sort by employee::operator<
ordered_unique<identity<employee> >,

// sort by less<string> on name
ordered_non_unique<member<employee, std::string, &employee::name> > > >
employee_set;

void print_out_by_name(const employee_set &es)
{
// get a view to index #1 (name)
const employee_set::nth_index<1>::type &name_index = es.get<1>();
// use name_index as a regular std::set
std::copy(
name_index.begin(), name_index.end(),
std::ostream_iterator<employee>(std::cout)); // Looks like the problem is here.
}

出现此错误:

/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iterator:813:28: error: invalid operands to binary expression ('ostream_type' (aka
'basic_ostream<char, std::__1::char_traits<char> >') and 'const employee')
*__out_stream_ << __value_;

最佳答案

似乎需要一个实现:

std::ostream &operator<<(std::ostream &os, const employee &obj)
{
os << obj.id << "/" << obj.name;
return os;
}

关于c++ - boost multi_index 示例 : error: invalid operands to binary expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46839702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com