如何 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;
}
我正在使用 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;
}