2012-05-08 12 views
3

私はBoggleのゲームソルバーでテキストファイル(ボード)の行を読み上げています。ベクター<string>またはベクター<ベクター<char>>?

私はvectorstringのSまたはchar秒のvector行列を使用する必要がある場合、私は行ったり来たりしてきました。私はvectorcharsmyvec[y][x]のようにアクセスしやすくなると思っています。vectorstringの場合、string.at()の機能を使用する必要があります。

私はchar sの中でそれぞれの行を解析したりstringように、ラインを残し、必要に応じて各charにアクセスする必要がある場合は、より良い性能を持っていることになるかわかりません。私はどちらをやるべきなのか? なぜが役立つのか説明する

+4

文字列にも[]を使用できます。 'at 'は範囲外チェックを提供します。 – chris

+0

@chrisああ、文字列でそれを試みたことはありません。文字列のベクトルが簡単になるので、私の質問をほぼ解決しました。ありがとう。 – LF4

+2

文字列は文字配列よりもはるかに優れています。できればそれを選択してください。文字列クラス 'operator []'のオーバーロードによって構文が可能です。 – chris

答えて

4

コメントされているように、またはストリングのような文字列にoperator[]を使用できます。

適切な最適化の下では、性能もがstring用としてvector<char>ためほぼ同じであろう - 双方は、フード下の配列であり、両方の場合においてoperator[]を効果的に構造部材へのアクセスと間接参照であろう。彼らはさらに、same setのほぼmethodsを提供します。

あなたのコードをより読みやすく/シンプルにします。

関連する問題