大家好:)我想创建一个personnal set类,并重载运算符/=,在我的类中,这个运算符应该用于两个集合的相交。我得到了以下错误:
错误:分配只读位置'__result.std::_Rb_tree_const_iterator<_Tp>::operator*()‘
下面是给出这个错误的代码部分:
Set& operator /=(const Set& st) // Substraction Assignement operator
{
set<T> tmp;
set_intersection(m_set.begin(), m_set.end(), st.m_set.begin(), st.m_set.end(), tmp.begin());
*this = tmp;
return *this;
}我是c++的新手,我不明白在只读位置上我该在哪里分配一些东西……请您给我解释一下,告诉我应该如何正确使用set_intersection (来自图书馆
很抱歉我的粗略英语,并已感谢您的帮助=D
发布于 2014-09-19 00:47:14
您需要使用插入器才能使其工作。
set<T> tmp;
set_intersection(m_set.begin(), m_set.end(),
st.m_set.begin(), st.m_set.end(), std::inserter(tmp, tmp.begin()));https://stackoverflow.com/questions/20618662
复制相似问题