получить доступ к нескольким параметрам на карте

Я определил карту,

static std::map<std::string, std::string> myentries;

записи заполняются динамически через строки ключей и значений, количество элементов и последовательность являются динамическими.

myentries[key] = value;

теперь мне нужно извлечь 7 параметров из карты, ключи которых известны мне, например, hostName, port, user1, user2, user3

один из способов — получить доступ ко всем 5 параметрам и иметь 5 операторов вроде

std::map<std::string, std::string>::iterator iterparam1 = entries_.find("hostName");

и доступ iterparam1->second.data(), iterparam2->second.data() ..

Этот простой подход делает свою работу, поскольку я знаю подмножество из карты, однако я хотел бы обсудить, есть ли альтернатива этому пути с преимуществами и недостатками текущих стихов предлагаемый / альтернативный подход.

Спасибо за ваше время 🙂

1

Решение

Я полагаю, что неправильный подход заключается в том, что вы решили сохранить параметры хоста. Лучше хранить структуру типа Host (пользовательская структура), чем набор пар ключ-значение. В противном случае в какой-то момент в вашем коде вам придется каким-то образом сопоставлять имена ключей с реальными полями в структуре, что сделает код трудным для обслуживания и менее безопасным. Не пытайтесь работать вокруг классов.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]