C++でiterator
からconst_iterator
を取得するにはどうすればよいですか? insert_iterator
のconst_iterator
はどうですか?結果として得られるiterator
は元の場所と同じ場所を指すはずです。const_iteratorへのC++イテレータ
15
A
答えて
22
コンテナはconst_iterator
に変換タイプとしてiterator
提供するために必要とされるので、あなたは、暗黙的に変換することができます:
Container::iterator it = /* blah */;
Container::const_iterator cit = it;
std::insert_iterator
sが出力イテレータです。これにより、順方向イテレータでなければならない通常のContainer::iterator
に変換する方法はありません。
別の種類の挿入イテレータはこのようなことを許可しますが、標準機能から得られたものは許可しません。
私はあなたがが、保護されたメンバーiter
を公開std::insert_iterator
周りに独自のラッパーを書くことができますね。
template <typename Container>
class exposing_insert_iterator : public std::insert_iterator<Container> {
public:
exposing_insert_iterator(std::insert_iterator<Container> it)
: std::insert_iterator<Container>(it) {}
typename Container::iterator get_iterator() const {
return std::insert_iterator<Container>::iter;
}
};
// ...
std::insert_iterator<Container> ins_it;
exposing_insert_iterator<Container> exp_it = ins_it;
Container::iterator it = exp_it.get_iterator();
4
あなたがそれらを変換することができます。例:
std::vector<int> v;
std::vector<int>::iterator it = v.begin();
std::vector<int>::const_iterator cit = it;
しかし、私はそれがあなたが求めている答えではないと思います。コードを表示する:-)
関連する問題
- 1. イテレータからconst_iteratorを取得
- 2. イテレータとconst_iteratorの比較は非効率的ですか?
- 3. イテレータとconst_iterator(STL)の効率が異なる
- 4. 特定の型へのC++イテレータ
- 5. const_iterator型の戻り値からイテレータへの実行可能な変換がありません
- 6. Pythonイテレータへのインデックス
- 7. const_iteratorをconstイテレータとして宣言することは十分ですか?
- 8. C++のイテレータ
- 9. C++コンテナのイテレータ
- 10. カスタムテンプレートクラスのC++イテレータ
- 11. リストのC++イテレータ
- 12. リストのC++イテレータ
- 13. C++イテレータのトラバース
- 14. コピーconst_iteratorの::位置
- 15. C++イテレータの問題
- 16. C言語のイテレータ
- 17. C++イテレータとリンクリスト
- 18. C++イテレータ、インターフェイス、ポインタ
- 19. Djangoテンプレート - イテレータへのレンダリング
- 20. 奇妙なconst_iteratorの行動
- 21. テンプレート継承C++イテレータ
- 22. CのPythonスタイルのイテレータ
- 23. C#のポインタ、イテレータとジェネリック
- 24. C++ unordered_map単一オブジェクトのイテレータ
- 25. C++イテレータのパイプライン設計
- 26. NoSuchElementException:MapPartitionsToPair-Sparkの空のイテレータで次へ
- 27. C++:マップからイテレータを消去した後、次のイテレータ
- 28. バイナリ検索ツリーinorderイテレータC++
- 29. C++ STL unordered_mapイテレータ問題
- 30. タイプ消去C++出力イテレータ
キャスティングは機能しませんか? – Pubby
@ Pubby8:キャストは必要ありません! –
ええ、私は台無しにしているに違いない。暗黙的に変換しようとしたときにコンパイラエラーが発生したと思いました。 –