숙제 지정의 일환으로 std :: Map과 비슷한 컨테이너를 구현해야했습니다.맞춤 컨테이너 정렬
지도를 구현 한 후 std : sort 키를 사용하여 정렬하려고했습니다.
std::sort(connectedFans.begin(), connectedFans.end());
는 어디 connectedFans이다 : 나는 다음과 같은 오류가 받고 있어요 그러나
Map<int, shared_ptr<Fan> >.
:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/algorithm:3752:90: error: no type named
'value_type' in 'std::__1::iterator_traits<mtm::Map<int, std::__1::shared_ptr<mtm::Fan> >::iterator>'
_VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
FanBookServer.cpp:50:2: note: in instantiation of function template specialization 'std::__1::sort<mtm::Map<int,
std::__1::shared_ptr<mtm::Fan> >::iterator>' requested here
std::sort(connectedFans.begin(), connectedFans.end());
^
1 error generated.
그러나 나는 잘 모르겠어요 문제가지도의 내 구현 내 생각 볼 곳. 지도에서 std : sort 알고리즘을 사용하려면 어떻게해야합니까?
또한 내지도를 std : sort (iterator.begin(), iterator.end(), compareFunction)에서 사용할 수있게 만들 수 있습니까?
[편집] 가 우는 소리가 컨테이너에 shared_ptr
를 사용하여 특정 문제를 해결하기 위해 내 Map.h http://pastebin.com/rACeK5av
수업을 보여줄 수 있습니까? – Shoe
정확하게 문제는 아니지만 올바른 테스트라고 생각합니다. '팬'개체가 정렬 가능 (즉, 연산자 <올바르게 구현 됨)이라는 보장을 위해'std :: map '으로 먼저 테스트 했습니까? –
@ wesley.mesquita, 문제는 내지도가 팬이 아닌 shared_ptr을 보유하고 있으며이를 처리하는 방법을 모르겠다는 것입니다. –