0

ループ内でセットを生成することは可能ですか? ループはセットの新しい名前を思いつきますか? 私は次のことをしようとしています:

//create storage structure for options according to hops
int lengthOfStart = start.length();
for (int i = 0; i<start.length();++i) {
    string nameOfSet = "Hop" + i;
    Set<string> nameOfSet;        
    wordLadderOptions.enqueue(nameOfSet);

}

私は従来の C++ セットのわずかに変更されたバージョンを使用しています。これは、データ操作用の関数をいくつか提供するだけですが、それ以外の点では、セットは C++ 標準ライブラリに組み込まれているものと同じです。私が言うとSet<string> nameOfSet;、コンパイラはこれを変数ではなくセットの実際の名前と見なします...

変数 i の値に基づいて for ループでセットを作成するために、変数として表示するにはどうすればよいですか?

4

1 に答える 1

2

変数名は、コンパイル後に C++ に存在しません (デバッグ情報を除く)。したがって、あなたの要求はあまり意味がありません。おそらく、各セットに名前を関連付けて、それらをmap<string, Set>?

実際にこれを実行できる Python のような言語では、これが舞台裏で行われています。唯一の違いは、変数名が実行時に辞書で暗黙的に検索されることです。

于 2012-08-17T05:09:33.193 に答える