insert into std::set<struct>
Как заполнить std::set элементами стуктуры struct para { bool flag, int x;} ? Причем para(true,100) и para(false,100) считаются разными элементами и должны успешно инсертиться. При вставке срабатывает operator< . видимо для того чтобы вставить элемент куда нужно. Но его использование делается странным.
struct para {
bool flag;
int x;
para(bool i, int x) : flag(i), x(x) {};
bool operator<(const para& r) const {
return (r.flag == this->flag || r.x < this->x);
}
};
int main()
{
std::set<para> store1;
store1.insert(para(false, 10)); //+1 para (нет такой пары в наборе поэтому добавляем её)
store1.insert(para(true, 10)); //+1 para (нет такой пары в наборе поэтому добавляем её)
store1.insert(para(true, 11)); //+1 para (нет такой пары в наборе поэтому добавляем её)
store1.insert(para(true, 10)); //ничего не добавляем в набор (т.к. элемент
//para(true,10) уже есть в наборе)
}
operator< тут работает не очень очевидно. вопрос как я должен оформить bool operator<(const para& r) const чтобы получить вот такой исход как описан в main (комменты)