если вы хотите рецепт ингредиентов, состоящий из нескольких частей
std::map<unsigned int, std::vector<std::string>> myRecipeMap;
, который даст вам сложность, пара ингредиентов, где сложность может быть количеством частей ингредиента, как некоторые вещи построены из яйцабелая и мука, чтобы сделать лапшу.
если вам нужно несколько сложностей
std::multimap<unsigned int, std::vector<std::string>>> myRecipeMap;
если вам просто нужна сложность для отношения имени ингредиента
std::map<unsigned int, std::string> RecipeBook;
и снова несколько сложностей
std::multimap<unsigned int, std::string> RecipeBook;
это даст вам сложность в рецепте ингредиента, но не его подкомпонентов
Я уверен, что вы знаете, что std :: map - это красное чёрное двоичное дерево поиска, и хотя это НЕ график, яизвините за этот ответ, если вы выбрали это упражнение специально, чтобы научиться писать график.std :: multimap - это отсортированный список.
Все это может быть выполнено более простым и, возможно, более быстрым, более грубым способом с вектором пар int и вектором строк для нескольких частей исходного илипара int и string только для имени врожденного.Если вы хотели иметь название сложности и ингредиента вместе с его подкомпонентами
std::map<unsigned int, std::pair<std::string, std::vector<std::string>> Recipe;
Стандартные библиотечные компоненты целиком и полностью способны создавать довольно сложные структуры данных, способные удовлетворить практически любую проблему.
И последнее, почему бы не отказаться от этой сложности и использовать базу данных, такую как SQLite, MySql, MS SQL (сервер Developmemt поставляется с бесплатной Visual Studio)?