Мультисеть со структурами - PullRequest
0 голосов
/ 27 июня 2019

Я хочу объявить мультимножество структуры. Текущая форма моего объявления мультимножества:

struct obj
{
   //code
};

struct compare
{
    inline bool operator()(const obj &a, const obj &b)
    {
    //code
    }
};
multiset<obj,compare> mst;

Существует ли какая-либо другая форма объявления, которая может использовать только одну структуру, перегружая оператор для obj .

1 Ответ

1 голос
/ 27 июня 2019

Да, вы можете перегрузить оператор < для своей структуры, либо как функцию-член, либо как отдельную функцию. Это сделает код более кратким (по моему чисто субъективному мнению), но на практике не приведет к разнице в производительности.

На самом деле оптимизирующий компилятор с большой вероятностью сгенерирует точно такой же код (при условии, что фактический код сравнения такой же).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...