2010-10-29 11 views
5

हेलो सब, मैं कुछ अच्छी लाइब्रेरी की तलाश में हूं, जो बिट्स या बिटरै के साथ काम करता है। कोई भी बेहतर कुछ जानता है (या सभी मामलों में बदतर नहीं) तो boost :: dynamic_bitset को बढ़ावा दें? कोई फर्क नहीं पड़ता कि पुस्तकालय खुला स्रोत या वाणिज्यिक है।बिसेट्स या बिटरैर के लिए अच्छी लाइब्रेरी

मेरी परियोजना में यह बड़ी आम मास्क के साथ स्टोर और काम करने का एक आम काम है, जिसमें कम संख्या में शामिल हैं। तो वे स्मृति में अच्छी तरह से संपीड़ित किया जा सकता है।

+0

आप हमें बता सकते हैं क्या बढ़ावा के bitsets कार्यान्वयन के साथ गलत क्या है? इससे मदद मिलेगी। – jv42

+0

या यहां तक ​​कि 'std :: bitset' के साथ क्या गलत है। – casablanca

+1

या इसके बजाय, आपको कौन सी कार्यक्षमता की आवश्यकता है जो प्रदान नहीं किया गया है। –

उत्तर

0

मिनीएसएटी पुस्तकालयों के बारे में कैसे?

http://minisat.se/

मैं इस बिट सरणियों के लिए एक सरल कार्यान्वयन होने याद।

0

यदि आप जो भी खोज रहे हैं वह अंतरिक्ष अनुकूलन है, तो std :: वेक्टर एक वेक्टर विशेषज्ञता प्रदान करता है जो अंतरिक्ष के लिए अनुकूलित है।

http://www.cplusplus.com/reference/stl/vector/

और सी ++ मानक 23.2.5

कोई विचार है कि अगर यह बढ़ावा तुलना में बेहतर है: dynamic_bitset, लेकिन यह करता है, तो आप पहले से ही यह में देखा नहीं किया है की जांच के लायक है।

6

संपीड़ित बिटवेक्टर उपलब्ध कई कार्यान्वयन हैं। वे आमतौर पर एक रन लम्बाई एन्कोडिंग को एक साथ और/या/xor/ऑपरेशन नहीं करते हैं जो संपीड़ित रूप पर काम करते हैं।

तो लाभ हैं:

  • छोटे स्थान उपयोग (विरल bitsets के लिए, आपके उपयोग के मामले के रूप में)
  • बहुत तेजी से बिट आपरेशन (क्योंकि वे शब्दों पर काम करते हैं और कहीं अधिक CPU कैश के अनुकूल हैं)

और नकारात्मक पक्ष पर:

  • धीमी बिट एक्सेस (यात्रा एक सा लगता है की आवश्यकता एक विशिष्ट स्थान) पर

कुछ कार्यान्वयन मैं के बारे में पता कर रहा हूँ (वहाँ दूसरों मैं यकीन कर रहे हैं):

Fastbit वास्तव में एक bitvector सूचकांक का उपयोग कर एक डेटाबेस है। संकुचित bitvector वर्ग सीधे (अनुक्रमण के बिना)

Lemur bitmapindex EWAH एन्कोडिंग Fastbit

Compressed bitvector by koen.vandamme कभी इसे करने की कोशिश द्वारा शुरू की एक और कार्यान्वयन के लिए इस्तेमाल किया जा सकता है ... लेकिन केवल दो हेडर और एक cpp फ़ाइल। तो कोशिश करने के लिए इतना प्रयास नहीं है।

Bitmagic पूर्ण संपीड़ित पैकेज कई संपीड़ित बिटवेक्टरों को लागू करने सहित हार्डवेयर समर्थन (एसएसई 2, ...)


आशा इस मदद करता है,

रोलाण्ड

संबंधित मुद्दे