Cplusplus.com에서 map :: map 참조를 읽었으므로이 작업을 수행하는 방법을 아직 모르겠습니다. 누구든지 내게 조언을 해줄 수 있다면, 나는 매우 감사 할 것입니다. 그럼 난 그것으로 삽입 할std :: map에 사용자 정의 객체 삽입
std::map<TriSpec, unsigned int> TriSpecMap;
:
내가하고 싶은 것은 다음과 같은지도를 만드는 것입니다
result = TriSpecMap.insert(std::make_pair(triSpecObject, anUnsignedInt));
내가 과부하를하고 있습니다 경우 사람이 나에게 설명 할 수 올바른 연산자, 그리고 만약 내가 사용하고있는 함수/형식이 맞다면? result.second를 볼 때 삽입되는 객체가 이미지도에 존재해야한다는 것을 알게되면 항상 사실입니다. 당신의 operator<
모든 경우에 값을 반환하지 않습니다 - 다음은 컴파일 것처럼 보이지 않는 내 TriSpec 헤더와 cpp를
//TriSpec.h
#ifndef TRISPEC_H
#define TRISPEC_H
class TriSpec
{
public:
TriSpec(void);
~TriSpec(void);
unsigned int m_position;
};
bool operator< (const TriSpec& lhs, const TriSpec& rhs);
#endif
//TriSpec.cpp
#include "TriSpec.h"
TriSpec::TriSpec(void){}
TriSpec::~TriSpec(void){}
bool operator< (const TriSpec& lhs, const TriSpec& rhs)
{
if (lhs.m_position < rhs.m_position) return true;
else return false;
}
컴파일되지 않는 또 다른 이유는 'T C :((void)'함수 서명 (또는 멤버 함수에 대한 올바른 형식)입니다. – moshbear
@moshbear : 왜 컴파일되지 않습니까? C에서 상속받은 "기능"중 하나가 아닌가요? –
OP의 게시물에있는 코드는이 대답이 나온 이후 수정되었습니다. 당신은 당신의 대답을 수정할 수도 있습니다. –