如何 link 带有字符串键的结构?

How to link a structure with a string key?

我正在使用 C++ 开发化学计量计算器。我已将每个元素的属性存储到数据结构中。每个数据结构都以元素的符号命名。我想要的是让用户能够输入元素的符号并让程序 output/use 结构中的值。示例:

User input: He
Program Output: Helium 1 1.00794 

我该怎么做?

将数据结构存储在 std::map 中,以符号为键。在用户输入时,使用 std::map::find() 在地图中查找符号并在找到的数据结构中打印数据

#include <iostream>
#include <map>


struct element
{
    std::string symbol;
    std::string name;
    double stoichiometry;
};

int main()
{
    element hydrogen;
    hydrogen.symbol = "H";
    hydrogen.name = "Hydrogen";
    hydrogen.stoichiometry = 2;

    element helium;
    helium.symbol = "He";
    helium.name = "Helium";
    helium.stoichiometry = 1.5;

    std::map<std::string, element> elements;
    elements[hydrogen.symbol] = hydrogen;
    elements[helium.symbol] = helium;

    std::string symbol;
    std::cout << "Enter element symbol: ";
    std::cin >> symbol;

    std::map<std::string, element>::iterator it(elements.find(symbol));
    if (it != elements.end())
    {
        std::cout << it->second.name << " " << it->second.stoichiometry << std::endl;
    }
    else
    {
        std::cout << "Symbol " << symbol << " not found";
    }

    return 0;
}