То, что я имею в виду, я делаю программу, которая принимает параметры от пользователя (столько, сколько он хочет ввести за один раз) с помощью консоли, например.Каков правильный способ отображения объектов на C++?
-p /users/me/myFolder/myHtmlFile.html -d /users/me/myOtherFolder -n myHmtlFileStyles -r
бы установить параметры -p
, -d
и -n
, а затем запустить программу (потому что это то, что -r
делает). Я уже написал функцию, которая проходит через каждую подстроку, окруженную пробелами во входной строке. Так что я подозреваю, что n00b шаблон дизайна будет что-то вроде
if (this_substring == "-p")
{
// ... run some procedure
}
else if (this_substring == "-d")
{
// ... run some procedure
}
else if (this_substring == "-n")
{
// ... run some procedure
}
else if (this_substring == "-r")
{
// ... run some procedure
}
else
{
// ... trigger not recognized; throw an error
}
, но я уверен, что есть более элегантный и правильный способ сделать это. Например, существует способ сопоставления функций string
? Есть ли что-то вроде
std::map<std::string, function> triggerMap = {{"-p", function1()}, {"-d", function2()}, "-n", function3()}, {"-r", function4()}};
??????
какой-либо причине вы выбрали unorderd_map над картой здесь? – stijn
@stijn, так как это не похоже на то, что нам нужно заказать здесь, идиоматическое решение для поиска по ключевым словам является хеш-таблицей, которая является 'unordered_map'. –