私は違い何得ることはありません:違い[C++]
std::vector< std::vector<bool> > matrix;
と
bool matrix[n][m];
私はそれらの両方のためにrowsとcolsを見つけるために.size()
を使用することはできますか?
ありがとうございます。
私は違い何得ることはありません:違い[C++]
std::vector< std::vector<bool> > matrix;
と
bool matrix[n][m];
私はそれらの両方のためにrowsとcolsを見つけるために.size()
を使用することはできますか?
ありがとうございます。
大きな違いがあります:
std::vector< std::vector<bool> > matrix;
- 他std::vector
bool
の-sが含まれていてもよいタイプstd::vector
のオブジェクトを定義します。
標準ライブラリで定義されたコンテナを使用します。それはあなたが使うことができる複数のメソッドを備えた巨大なAPIを持っています。 matrix.size()
がその1つです。
bool matrix[n][m];
- n
の配列を定義します。m
boolsの配列です。
ここで、matrix
は、オブジェクト単位ではなく、むしろプリミティブ型です。ここではmatrix.size()
を使用することはできませんが、sizeof(matrix)/sizeof(matrix[0][0])
を使用すると、その中のboolの総数を取得できます。
可能な限り標準ライブラリのコンテナを使用することをお勧めします。コメントの一部が正常に示唆したように
、行を見つけるために)「私は(.sizeを使用することができます*あなたはまた、代わりにプリミティブ配列のstd::arrayを使用することができ、これは、彼らが結局:)
'std :: array'にnodを指し示し、アスカーを指すことを推奨します。 – user4581301
@ user4581301、あなたの正しい推薦を加えました –
のためにここにいるものですそれらの両方のためのcols? " - - いいえ。相違を列挙するために、それが広すぎるかどうかわからない。 – StoryTeller
1つはコンテナであり、もう1つはプリミティブな2D配列です。 – Charles
これは基本的な2D配列である可能性があります。これは可変長配列でもかまいませんし、これらのバグはあまりにも多くのバックエンドの奇妙さを必要とします。 – user4581301