试图遵循boost_party
我制作了这个示例代码:
#include "boost/icl/interval.hpp"
#include "boost/icl/interval_map.hpp"
#include <set>
using namespace std;
typedef std::set<string> ids;
int main(int argc, char* argv[])
{
ids ids1;
ids1.insert("T1");
ids ids2;
ids2.insert("T2");
boost::icl::interval_map<boost::icl::closed_interval<int>, ids> mymap;
boost::icl::closed_interval<int> i1 = boost::icl::closed_interval<int>(2, 7);
boost::icl::closed_interval<int> i2 = boost::icl::closed_interval<int>(3, 8);
mymap += make_pair(i1, ids1);
mymap += make_pair(i2, ids2);
return 0;
}
但这得到了这个编译错误:
error: no match for ‘operator+=’ (operand types are ‘boost::icl::interval_map<boost::icl::closed_interval<int>, std::set<std::basic_string<char> > >’ and ‘std::pair<boost::icl::closed_interval<int>, std::set<std::basic_string<char> > >’)
mymap += make_pair(i1, ids1);
知道出了什么问题吗?
最有可能的是mymap.insert(make_pair(...));
代替mymap += make_pair(...);
。这就是语法std::unordered_map
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)