2013-12-16 7 views
3

안녕하세요 여러분 :) 저는 personnal 집합 클래스를 만들고 연산자에 과부하를 걸기를 원합니다. 즉, 클래스의 경우이 연산자는 두 집합의 interstion을 가져와야합니다.set 컨테이너에서 set_intersection 사용.

오류 : '__result.std :: _ Rb_tree_const_iterator < _Tp> :: 운영자 *()'여기

이 날이주는 코드의 일부이다 읽기 전용 위치 지정 나는 다음과 같은 오류가 발생했습니다 오류 :

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에 새로 온 ++와 내가 읽기 전용 위치에 somehting를 할당하려고 위치를 이해하지 ... Plz은 당신이 나에게 그것을 설명하고 그래서 난 가정 얼마나 말해 줄 수 set_intersection 올바르게 사용하기 (라이브러리

)210

내 근사한 영어로 죄송합니다. 이미 도움을 주셔서 감사합니다. = D

답변

2

작동하려면 인서 터를 사용해야합니다.

set<T> tmp; 

set_intersection(m_set.begin(), m_set.end(), 
       st.m_set.begin(), st.m_set.end(), std::inserter(tmp, tmp.begin())); 
관련 문제