У меня есть структура с уникальным ключом. Я хочу вставить экземпляры этих структур в набор. Я знаю, что для этого оператор <должен быть перегружен, чтобы set мог произвести сравнение для выполнения вставки.
Следующее не работает:
#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);
}