Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
using std::bitset; // Im Bitset können wir leicht einzelne Bits setzen und löschen, sogar mit Strings. using std::vector; // Der Vector ist unser dynamischer Container. // es geht auch mit std::array, aber nur wenn wir die Größe wissen. (Constante) // Ein Vector wird mit einem Bitset erstellt. Das Bitset hat eine Länge von 7 bit. vector<bitset<7>> bsv( 10 ); // Wir setzen die Anfangsgröße auf 10 Elemente. bsv[0] = bitset<7>( "1001001" ); // [0] Bitset 0 wird mit einem neuen Bitset befüllt. bsv[1].set( 0x02 ); // [1] Wird Hex 0x02, Bin 0000010 gesetzt. bsv.push_back(bitset<7> ( "1111001" ) ); // Ein neues Element hinten dran hängen. for ( auto x : bsv ) // Wir iterieren über alle Bitsets. { TolleFunktion(x); // Und können hier jedes bitset verarbeiten. // ! unser Vector hat jetzt 11 Elemente ! die nicht veränderten haben auch Werte. } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using std::bitset; using std::array; // Per Value. array<bitset<10>, 4> bsv1 = { 0x01, 0x02, 0x03, 0x04, }; // Oder per moveconstructor (kein Kopieren) array<bitset<10>, 4> bsv2 = { bitset<10>("0000000001"), bitset<10>("0000000010"), bitset<10>("0000000011"), bitset<10>("0000000100"), }; if ( bsv2[2][1] ) // Wir fragen mal ein Bit nach. ArrayElement 3 [2], Bit 2 [1]. { // Hmm, steht hier ein Baum oder nicht? } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »H5::« (24.02.2013, 21:24)
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
using std::bitset; using std::vector; // Oder per move (kein Kopieren) // nur nicht per initializer list vector<std::bitset<10>> bsv(4); bsv[0] = bitset<10>("0000000001"); bsv[1] = bitset<10>("0000000010"); bsv[2] = bitset<10>("0000000011"); bsv[3] = bitset<10>("0000000100"); if ( bsv[2][1] ) // Wir fragen mal ein Bit nach. VectorElement 3 [2], Bit 2 [1]. (alles wie beim std::array) { // Hmm, steht hier ein Baum oder nicht? } |
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »H5::« (24.02.2013, 21:47)
Werbeanzeige