c++ - 如何将结构与字符串键链接起来?

标签 c++ input struct output

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

User input: He
Program Output: Helium 1 1.00794 

我该怎么做?

最佳答案

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

#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;
}

关于c++ - 如何将结构与字符串键链接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28080655/

相关文章:

c++ - 模板类无法正确构建

C++ 将索引绑定(bind)到一个数据结构

java - 从聊天窗口读取输入

arrays - 如何在 Scala 中编写多态输入函数?

c - 传递结构或指向结构的指针更好?

c - 在 C 中使用函数指针

C++读取字符串段错误

c++ - 等待 WaitForMultipleObjects

python - C++ 重载输入流运算符的公认 python 替代方案是什么?

c++ - 分配结构包括指针