2011-06-25 9 views
2

可能性の重複:関数によって受け取ったイテレータが右側のリストに属している場合
C++: Check if iterator belongs to a listリストのC++イテレータ

にはどうすれば確認できますか?

List<double> doublesList; 
List<double> doublesList2; 

// Can't mix iterators 
ASSERT_THROW(ListExceptions::ElementNotFound, doublesList.remove(doublesList2.begin())); 
ASSERT_THROW(ListExceptions::ElementNotFound, doublesList2.insert(5.0, doublesList.begin())); 

私自身のリンクリストと自分のイテレータのケースを尋ねます。 ありがとうございました。

+1

「リスト」とは何ですか?あなたは 'std :: list'を意味しますか? – ildjarn

+3

これはあなたの 'List'の実装に依存します – Anycorn

答えて

5

標準のコンテナを使用することはできません。 C++標準ライブラリはこれをプログラマに任せます。実際、イテレータの比較はinvokes UBです。

自家製のコンテナでは、イテレータに情報を挿入して、どのコンテナに属しているかを覚えておくことができます。イテレータは重くなりますので、しばしばデバッグモードでは賢明です。

+0

-1あなたの答えはstd :: listのものであり、STL(" ListExceptions "と" List <> ")ではないことを尋ねるものではありません。 – SoapBox

+0

@SoapBox:実現それは、遅すぎるものの。 –

関連する問題