Ich übe eine Frage über Arrays, in denen ich einzigartige Elemente finden muss. Nun ist es meine Logik, das maximale Element im Array zu finden und das Bitset dafür zu definieren. Aber Problem ist bitset braucht einen konstanten Wert, so wie dies zu überwinden, sind unten einige meiner Frage zu diesem Thema:
a) Kann ich zufällig das Bitset mit variabler Größe definieren?
b) Wenn nicht, was ist der beste Ansatz, um vector<bool>
oder vector<char>
zu verwenden?
c) Ich weiß, Boost hat ein dynamisches Bitset, aber da ich dies zum Lernen mache, möchte ich alternative Ansätze kennenlernen.
Die std::bitset<N>
Vorlage benötigt im Voraus eine feste Größe. Das std::vector<bool>
ist die Art und Weise, wie der C ++ - Standard einen Bitvektor mit variabler Länge bereitstellt, und es bietet Funktionen, die einem Bitset ähnlich sind, das vergrößert und verkleinert werden kann.
Ob es besser oder schlechter ist, vector<char>
oder vector<bool>
zu verwenden: vector<bool>
ist ein viel direkterer Weg, um dieses Ziel zu erreichen. Ich würde damit beginnen, es zu verwenden, dann wechseln Sie zu vector<char>
, wenn die Leistung inakzeptabel ist. Im Allgemeinen ist es gut zu versuchen, zuerst die sauberste und einfachste Implementierung zu schreiben, um sie später zu optimieren.
Hoffe, das hilft!
Tags und Links c++ data-structures bitset