我有一个结构矢量,如下:std::vector<mystruct> elems.
如果我有一个mystruct指针,我知道它指向其中一个元素elems,我怎样才能得到它的索引elems?
Ste*_*sop 14
ptr - &elems[0];
从C++ 03开始,矢量存储需要是连续的,标准中"连续"的定义是 &v[n] == &v[0] + n;
[编辑:从相当理论的可移植性的角度来看,请注意允许实现定义SIZE_MAX,ptrdiff_t以便可以使用未定义的结果减去同一对象中的两个指针.你希望没有任何实现可以安排实际导致问题,但你永远不会知道.实现避免相当容易 - 只是不返回大的分配]