我试图实现一个用户输入number / int的程序,程序会输出匹配的char。我曾想过使用向量来存储数据。我想知道是否有更快或更好的方法来实现它? 存储在具有更多数字的文本文件中的数据是justexample。
{2300, V }
{2400, W }
{2500, X }
{2600, Y }
{2700, Z }
{2800, [ }
{2900, \ }
SAmple run:
input: 2300
output: V
答案 0 :(得分:1)
你可以使用std::map
(内部是一个自我平衡的二进制搜索树),这将为检索元素提供log(N)时间复杂度,或者std::unordered_map
(内部为哈希表)将给出检索元素的时间复杂度。
以下示例位于std::map
,但您可以轻松将其更改为std::unordered_map
int main() {
map<int, char> m;
m[2300] = 'V';
m[2400] = 'W';
.... //Populate, store the elements in the map
int input;
cin >> input; //input should be a value in the map otherwise you may get a empty char
cout << m[input] << endl;
return 0;
}