正確に2つのタイプのオブジェクトをベクトルに格納する必要があります。どちらのタイプもほとんど共通していません。デザインパターン、2つの可能なタイプのそれぞれのオブジェクトのベクトル
ベクターに格納した後、タイプに応じてそのベクターを繰り返し処理してアクションを実行します。
私の考え、これまで:
ポリモーフィズム。オーバーキル、と私はおそらくこれを行うだろうと、ずっと私を助けていないでしょう。
if(dynamic_cast<T1>() != nullptr) { ... } else { ... }
は、両方のタイプ(メソッドやフィールド)をマージし、ブール値を追加し、そのタイプ1または2
どちらのパターンも私にとっては全く不器用なようですが、単純には完全に単純な解決策がありますが、私は単に見ません。
struct PatternMatch {
int length;
int indexInDict;
}
二 1:
第1のタイプは、このようなものである
struct NoMatch {
std::string rawChars;
}
2つのメンバー変数を持つ 'class'を作成しないのはなぜですか? 1つは 'PatternMatch'で、2つ目は' NoMatch'です。次に、そのクラスのオブジェクトを保持するベクトルを作成しますか? – KostasRim
継承と仮想関数を使用する場合は、 'dynamic_cast'を行う必要はありません。実際には、これが多形性のすべてです(dynamic_castは正反対のアプローチです)。 –
なぜ2つのベクトルがないのですか? –