假设我们有一张桌子:std::vector< std::vector<int> > table(3, std::vector<int>)
看起来像这样:
11 21 31 41 45 51 61
71 81 91 10 19 29
39 49 59 69 79 89 99 109
我们得到int nThPos
的元素总数在1到N之间table
(此处为21)。
在表中查找与元素#nThPos
或其坐标([row] [col])相对应的元素的最有效方法是什么?
对于此特定情况,表沿哪个方向展平无关紧要:如果为nThPos == 8
,则结果可以是71(即[1] [0])或91(即[1] [2])。
注意:我的问题与这一问题非常相似。但是我的情况是内部向量具有不同的长度。
如果您不选择维护某些辅助数据(或选择完全不同的基本表示形式),那么没有比最明显的方法有效的方法(遍历外部向量累积内部向量的总大小,直到到达正确的内部向量)。
如果效率很重要,请以其他方式存储数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句