고유 키를 가진 구조체가 있습니다. 이 구조체의 인스턴스를 세트에 삽입하고 싶습니다. 이 작업을 수행하려면 < 연산자가 오버로드되어야하므로 set이 삽입을 수행하기 위해 비교할 수 있어야합니다.C++에서 구조체 집합을 갖는 방법
다음은 작동하지 않습니다
#include <iostream>
#include <set>
using namespace std;
struct foo
{
int key;
};
bool operator<(const foo& lhs, const foo& rhs)
{
return lhs.key < rhs.key;
}
set<foo> bar;
int main()
{
foo *test = new foo;
test->key = 0;
bar.insert(test);
}
Test.cpp에 : 20 : 오류 : 호출 일치 기능을 표준 '으로 :: 설정 이하, 표준 : : 할당 > :: 삽입 (foo * &) ' 오류가 꽤 분명해 보입니다. 객체가 있어야하는 위치에 포인터를 놓으려고합니다. –
dcousens
질문을 편집 할 수있는 것은 좋지만 그 의미를 변경해서는 안됩니다. 이것은 어떤 (아마도 정확한) 대답을 무효화하고 미래의 독자가 편집을 먼저 보도록 강요합니다. 같은 사람이 짧은 시간 내에 몇 가지 질문을 게시하는 것과 관련하여 StackOverflow에 대한 제한이 없습니다. 사실, 그건 좋은 생각입니다. – ereOn