我有两个向量,vec和p,这样p是指向vec中不同位置的指针的向量.
所以类似于:
p[0] = &vec[12]
p[1] = &vec[20]
p[3] = &vec[1]
Run Code Online (Sandbox Code Playgroud)
p的大小始终小于或等于vec,并且不包含对vec中相同位置的重复引用.
我想要的是一些数据结构,我可以迭代通过它们在a中指向的索引的顺序获得p的解除引用值.因此对于上面的例子,结果需要以vec [1],vec [12],vec [20]的顺序迭代.
我知道可以获得vec中的位置p指向做类似的事情p[i] - &vec[0],并且可能使用std :: sort和自定义比较函数来实现它,但我觉得有一种比O更有效的方法来做到这一点(nlogn)排序函数.我也可能完全错了.
谢谢你的帮助!