这个问题适用于 std::set
和 std::unordered_set
。
我有一个指向集合中元素的迭代器。我想使用这个迭代器根据元素在集合中的位置获取一个“索引”。
例如,我的集合的索引如下:
int index = 0;
for(MySetType::iterator begin = mySet.begin(); begin != mySet.end(); begin++)
{
cout << "The index for this element is " << index;
index++;
}
我尝试使用迭代器进行算术运算,但是它不起作用:
int index = mySetIterator - mySet.begin();
有没有办法使用迭代器来获取集合中元素的索引值?
std::distance
函数。但是,在使用它之前,请先阅读Jack的答案。 - Some programmer dude