在c++中映射两组值
Mapping two set of values in C++
对于这样一个幼稚的问题,我深表歉意。我知道这很简单。但现在我什么也想不起来了。
我正在使用c++。我有点担心效率,因为这是针对具有非常少的处理能力和RAM的嵌入式硬件的。
我有两个整数数组,每个数组有50个成员。当指定了第一个数组中的一个元素时,我需要确定第二个数组中对应的数字是什么,反之亦然。我有提供给我查找的元素属于哪个数组的信息,即数组1或数组2。
Ex: Array1 => 500 200 1000 300 .....
Array2 => 250 170 500 400 .....
Input 500 , Output will be 250
Input 400 , Output will be 300
input 200 , Output will be 170 and so on
我认为数组查找是效率最低的。stl::map是最好的选择,还是我必须寻找任何有效的搜索算法?我想知道如果你必须这样做,你会选择哪个选项。
任何想法吗?
您可以使用std::map来提高可读性和一点效率,尽管在您的情况下效率是无关紧要的
std::map<int,int> mapping;
.... //populate
cout <<mapping[200]; //170
这只是一种方式(数组1 ->数组2)。我不确定是否有其他更简单的方法,但是创建第二个映射。
支持反向查找,或者从(数组2 ->数组1),反向映射查找建议使用Boost。Bimap
我认为有两种方法都已经被建议过了;
-
将两个数组作为键对值放在map中,遍历map查找对应的值或键。
-
遍历输入所在的数组并计算索引。
我会选择第二个解决方案,因为它更容易。此外,静态数组中只有50个元素,您无需担心性能问题。
相关文章:
- 两组使用lambda函数的大括号
- 尝试查找两组点的交集,错误"No viable overloaded '=' "
- 如何在两组线程之间正确来回传输控制权
- 两组的高效交集
- 如何匹配不同环境的两组?C++
- 如何在两组上做两指针技术
- 如何在C++中输出两组不同的随机数
- 比较两组相等的类型
- 将字符串从头到尾分成两组,每组 C++
- 使用set_union合并两组时,只读位置的分配
- 在同一目录下编译两组C 二进制文件
- 比较两组std :: feek_ptr
- 给定两组 xyz 坐标和一个 sag (a) 的值,我可以在 OpenGL 中的这些点之间绘制一个悬链线
- 两组向量之间的四元旋转
- 如何在C 中使用OpenMP并行运行两组代码
- 创建和比较两组卡片
- OpenGL3两组着色器,纹理显示为黑色
- 两组的交集
- 形成两组的并集似乎给出了错误且不一致的答案
- 如何使用 cmake 分别编译两组源文件