Ich habe einige Codierung Beispiele gesehen, die eine unsigned int
empfehlen die Verwendung eines Bitmap darzustellen:Verwendet unsigned int anstelle von std :: vector <bool> oder std :: bitset eine empfohlene Praxis?
unsigned int zero_rows {0};
for (auto i = 0; i < n_rows; ++i) {
zero_rows |= (1 << i);
…
}
dies einen Vorteil gegenüber der Verwendung std::vector<bool>
bieten Enthält:
std::vector<bool> zero_rows(n_rows, false);
for (auto i = 0; i < n_rows; ++i) {
zero_rows[i] = true;
…
}
Eine andere Option, die ich std::bitset
sein erraten konnte, aber ich bin nicht wirklich sicher über die Vor- und Nachteile von jedem noch. Ich möchte nur wissen, was die empfohlene Praxis ist.
Ein 'unsigned int' ist 4 Bytes, aber ein' std :: vector 'kann darüber hinausgehen. –
Charles
Eigentlich muss ein 'unsigned int' nur 16 Bits enthalten, und ein Byte in C++ ist nicht (unbedingt) 8 Bits - es ist die Größe eines' char' ... was einige Plattformen als 64 Bits haben. –