2014-04-17 100 views
0

我正在轉換系統中的一些代碼,並使用枚舉器爲UI提供服務。不幸的是,統計員的設計圍繞着std::vector<T>::const_iterator。也就是說,它需要一個類型爲std::vector<T>::const_iterator的開始和結束迭代器。可能從多索引容器索引獲取std :: vector <T> :: const_iterator?

我想將數據源的底層容器從向量轉換爲boost多索引容器。這很好,直到我必須爲普查員服務。

我的問題是,是否有可能將多索引容器索引迭代器轉換爲std::vector<T>::const_iterator

+0

糟糕。您有理由不在界面中使用實現細節。如果幸運的話(取決於向量的元素類型,例如),您可以使用Boost Intrusive僞造一個混合使用向量作爲後盾。 (這要求你改變元素類型,但是爲了提升Intrusive的鉤子) – sehe

+0

關於界面中的實現細節 - 我完全同意你的看法。 –

回答

1

不,這是不可能的;向量是連續的容器,但即使隨機訪問索引也不提供數據連續性。

您需要將索引保留在向量的外部,或者根據需要重新創建向量。