我需要cout并返回迭代器所指向的deque元素的索引。如何从迭代器中获取int?
发布于 2010-06-02 05:42:49
您可以使用:
std::ptrdiff_t index(std::distance(my_container.begin(), my_iterator));但是,请注意此类例程的运行时成本--这取决于您使用的数据结构。
发布于 2010-06-02 05:46:34
对于随机访问迭代器,您可以只使用减法:
size_t index = some_iterator - some_deque.begin()显然,这并不适用于所有的迭代器(例如。对于std::list或其他什么),但我认为这是一种优雅,因为您只能在需要持续时间的情况下才能使用这种技术。如果您的容器没有随机访问迭代器,那么尝试查找它们的索引可能是不明智的。
发布于 2010-06-02 05:42:18
std::ptrdiff_t index = std::distance(myDeque.begin(), curIterator);https://stackoverflow.com/questions/2953549
复制相似问题