該問題同時適用於std::set
和std::unsorted_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'](http://en.cppreference.com/w/cpp/iterator/distance)函數。但是,請在使用前閱讀傑克的答案。 –