У меня есть пользовательский узел класс, который необходимо использовать с пользовательским хэшмапом и сравнить значение, например. std :: unomoromed_map соседей;
Прямо сейчас я вынужден объявить об обоих
static bool equal(const Node &a, const Node &b)
{
return a.q == b.q;
}
bool operator==(const Node &other) const
{
return equal(*this, other);
}
< /code>
и < /p>
struct Equal {
bool operator()(const std::shared_ptr &a, const std::shared_ptr &b) const
{
return equal(*a, *b);
}
};
Есть ли более чистый способ сделать это так, чтобы он мог поддерживать операторы неравенства непосредственно на std :: shared_ptr , но также и на узле и std :: unordord_map
class Node {
public:
// Joint configuration associated with the node
Eigen::VectorXd q;
std::shared_ptr parent;
// Constructor
Node(const Eigen::VectorXd &q, std::shared_ptr parent = nullptr)
{
this->q = q;
this->parent = parent;
}
static std::size_t hash(const Node &node)
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/796 ... hmap-overl
Наличие класса, который поддерживает перегрузку оператора для обоих, перегрузка HashMap ⇐ C++
Программы на C++. Форум разработчиков
1746047567
Anonymous
У меня есть пользовательский узел класс, который необходимо использовать с пользовательским хэшмапом и сравнить значение, например. std :: unomoromed_map соседей;
Прямо сейчас я вынужден объявить об обоих
static bool equal(const Node &a, const Node &b)
{
return a.q == b.q;
}
bool operator==(const Node &other) const
{
return equal(*this, other);
}
< /code>
и < /p>
struct Equal {
bool operator()(const std::shared_ptr &a, const std::shared_ptr &b) const
{
return equal(*a, *b);
}
};
Есть ли более чистый способ сделать это так, чтобы он мог поддерживать операторы неравенства непосредственно на std :: shared_ptr , но также и на узле и std :: unordord_map
class Node {
public:
// Joint configuration associated with the node
Eigen::VectorXd q;
std::shared_ptr parent;
// Constructor
Node(const Eigen::VectorXd &q, std::shared_ptr parent = nullptr)
{
this->q = q;
this->parent = parent;
}
static std::size_t hash(const Node &node)
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79601105/having-a-class-that-supports-operator-overloads-for-both-itself-a-hashmap-overl[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия