Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mazze JLI'ler
Alter: 39 Anmeldedatum: 02.01.2004 Beiträge: 145
Medaillen: Keine
|
Verfasst am: 01.06.2004, 17:32 Titel: std::bitset - Groesse zur Laufzeit? |
|
|
Moin,
Ich hab da ein Problem(?) mit dem std::bitset:
Wenn man ein Objekt vom Typ bitset erstellt sieht das ja in der Regel so aus:
Code: |
std::bitset<10> foo("1000100101");
|
Doch fuer meinen Fall waere die Anzahl der Bits, also "10" in dem Beispiel, zur Compilezeit noch nicht bekannt, also erst zur Laufzeit.
Code: |
int foobar = zahlVonBenutzerHolen();
std::bitset<zahl> bar(...);
|
So geht das ganze leider nicht. Gibt es vielleicht noch eine andere Moeglichkeit?
ggf. alternative Klassen? |
|
Nach oben |
|
|
Mazze JLI'ler
Alter: 39 Anmeldedatum: 02.01.2004 Beiträge: 145
Medaillen: Keine
|
Verfasst am: 01.06.2004, 18:25 Titel: |
|
|
Ich hab es erstmal halt so geloest:
Code: |
class bits {
public:
bits(const std::string &data) {
std::string::const_iterator it = data.begin();
for(;it != data.end();++it)
charToIntern((*it));
}
bool operator[](int id) {
return m_bits[id];
}
void out() {
std::vector<bool>::iterator iter = m_bits.begin();
for(;iter != m_bits.end();++iter) {
std::cout << (*iter);
}
std::cout << std::endl;
}
private:
std::vector<bool> m_bits;
template<class T>
void charToIntern(const T ch) {
const int size = sizeof(T) * 8;
std::bitset<size> _bits(ch);
for(int i = size-1;i >= 0;--i) {
m_bits.push_back(_bits[i]);
}
}
};
|
Fehlen halt noch ein paar Details....
Zwar nicht die feinste Loesung.....aber |
|
Nach oben |
|
|
|