假设我有一个 std::vector 并且通过某种方式获得了第 n 个元素的地址。
给定 std::vector 的基地址,是否有一种简单的方法(比迭代向量更快)来获取元素出现的索引?假设我确定该元素位于向量中。
由于您知道该元素位于向量内,并且向量保证其存储是连续的,因此您可以执行以下操作:
index = element_pointer - vector.data();
or
index = element_pointer - &vector[0];
请注意,从技术上讲,连续保证是在 C++03 中引入的,但我还没有听说过 C++98 实现不碰巧遵循它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)