問題タブ [const-iterator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - const std::map の検索
私は自分のクラスの 1 つに取り組んでいますが、つまずきに出くわしました。ソースのサンプルを示しますが、クラス、メソッド、および変数名の名前だけが異なりますが、実装は同じです。適切な関数へのコード ブロック内に、私の問題、質問、懸念事項が表示されます。
MyClass.h
MyClass.cpp
私のソースでは、最初の関数よりも重要なのはこの 2 番目の関数です! ヘルプや提案は大歓迎です。
c++ - 単純な反復子の違いに関する "No match for operator-" エラー
これが私のコードです:
私は得てerror: no match for 'operator-' in 'st.std::set<_Key, _Compare, _Alloc>::find [with _Key = int, _Compare = std::less<int>, _Alloc = std::allocator<int>](((const int&)((const int*)(&1)))) - st.std::set<_Key, _Compare, _Alloc>::begin [with _Key = int, _Compare = std::less<int>, _Alloc = std::allocator<int>]()'
います。
イテレータの違いが突然機能しなくなった理由がわかりません! ここで何か不足していますか?
c++ - オブジェクトをベクターの const_iterator にキャストします
こんにちはstd::vector<T>::const_iterator
、パラメーターとして受け取る関数があります。
質問は:
タイプ T のスタンドアロン オブジェクトをイテレータにキャストして、それを引数として使用するにはどうすればよいですか?
c++ - 自作イテレータの const-correctness
一般的な目標
オブジェクトのコレクションを管理します(簡単Collection
なReal
例として)。次に、コレクションに反復子を定義しました。つまりiterator
、 、const_iterator
、reverse_iterator
およびconst_reverse_iterator
. iterator
この例では、とだけに注目しconst_iterator
ます。他の 2 つは非常によく似ています。
その後、特定の条件に関して要素を保持するかどうかを指定するコレクションのフィルターを定義したいと思います。Real
例として、正の値を持つインスタンスのみを保持します。また、保持された要素のみでコレクションを反復処理したいと思います。
コレクションの実装方法
この例では、コレクション内の私のオブジェクトは非常に単純です。目標は、ネイティブ型の代わりにオブジェクトを持つことです:
次に、内部の実際のコンテナーを知らなくても、コレクションを定義します。
これは、次の単純な例で非常にうまく機能しています。
そして、このプログラムは期待される出力を書き込みます:
フィルターの実装方法
ここで、コレクションへの参照またはポインターを持ち、反復子を持ち、フィルターを介して値を受け入れる抽象関数を持つ抽象フィルターを作成したいと考えています。この最初のステップでは、イテレータを使用せずにクラスのみを作成しました。
次に、特定の条件を実装する新しいフィルターを作成するのは非常に簡単です。
フィルターに反復子を実装する前に、いくつかのコメント/質問があります。
- このフィルターは非 const
Collection&
で機能しますが、begin() const
andend() const
関数は本当に必要ですか? はいの場合、なぜですか? - にフィルターを適用することはできませんが、
const Collection&
私の目標には明らかに必要です。それを行う良い方法は何ですか?CollectionFilter
クラスCollectionFilterConst
を非常によく似たコードを持つクラスに複製する必要がありますか? さらに、このソリューションは、2 つの類似したクラスから継承する必要があるユーザーにとって非常に混乱します。
それでは、イテレータの実装に行きましょう。この例では、 のみを記述し、 は記述しiterator
ませんでしたconst_iterator
。これをクラスに追加します:
これは、この単純な例でもうまく機能しています
期待される出力を与える:
繰り返しますが、いくつかの質問:
- 私はこのアプローチで完全に間違っていますか?
- わずかな変更だけで
CollectionFilter::iterator
実装するには、 のコードを複製する必要があると思います。CollectionFilter::const_iterator
このコードの重複を避ける方法はありますか (重複したクラスCollectionFilterConst
と逆の反復子を数えると、8 回書かれています)。 - コードの const の正確さに満足できません。いくつか問題がありますか?
前もって感謝します !
c++ - 範囲のC ++ソートビュー - const_iteratorの作成方法は?
基になる要素のシーケンスでソートされたビューとして機能するクラスを作成しようとしています。const
これまでのところ、非バージョンを思いつきました。現在、機能を提供するように適応させるのに問題がありconst_iterator
ます。
これまでのコードは次のようになります。
対応するイテレータは次のようになります。
使用例は次のようになります。
出力:
ケースにイテレータを適応させるにはどうすればよいconst
ですか? 代わりに、基になる型 (int
たとえば) でイテレータをテンプレート化すると、より簡単になりますInputIt
。このクラスを定義するより良い方法はありますか?
たとえば、range-v3ライブラリを使用してこれを解決できると思いますが、これ以上依存関係を追加せず、C++11/14 関数に依存しようとしています。
c++ - const_iterator が reverse_iterator のようなベースを提供しないのはなぜですか?
対応する非 constのような関数をconst_iterator
提供しないのはなぜですか?const_iterator::base()
iterator
reverse_iterator
次の擬似コードを検討してください(たとえば、幾何学的アルゴリズム):
universe
すべての入力ポイントはどこにありますか。のメンバーのサブセットに含む反復子をsieve()
-ing した後。以下は、 のメンバーへの参照 (反復子) で構成される から生成される を構築します。interesting_subset
universe
algorithm()
structure
interesting_subset
universe
最後に、point
結果に含まれる sを変更しstructure
ます (たとえば、シフトします)。しかし、同様に、アクション中の modyfining からそれらを保護したいので、 /の反対として/algorithm
を使用しました。最後に、 source への参照しかありません。std::cbegin
std::cend
std::begin
std::end
const_iterator
point
これは、iterator std::container< T >::const_iterator::base() const
STL コンテナーに含めたいメンバー関数の使用例です。
c++ - C++、const_iterator を使用して operator= を作成する際に問題がある
次のように書くとコンパイルエラーが発生します。
const_iterator
のための私自身のクラスですconst iterator
。
cp
クラスのオブジェクトですConjuntoPreguntas
(以下を参照)。
エラーは次のとおりです。
コード:
誰かが私を助けることができれば、私はとても感謝しています.
c++ - 独自のリストとイテレータ STL C++ の実装
皆さんこんにちは、
大学のプロジェクトで、イテレータを使用して独自のリストを実装する際に問題が発生しています。ループを正しく反復するにはどうすればよいですか? 誰か助けてくれませんか?私の英語が間違っている場合は申し訳ありません。
最初のループや 2 番目のループのように、リストを繰り返し処理したいと思います。