2013-10-14 11 views
6

का उपयोग करके अनियमित पढ़ने की त्रुटि देता है मैं अपने प्रोजेक्ट में एसटीएल कंटेनर का उपयोग कर रहा हूं और मुझे एक अजीब त्रुटि मिली है जिसे मैं समझा नहीं सकता। के निम्नलिखित कोड पर विचार करें:सी ++ std :: वेक्टर <bool> ड्रममरी

#include <iostream> 
#include <vector> 

int main(int argc, char** argv) 
{ 
    std::vector<bool> vec; 
    vec.resize(5, false); 
    std::cout << vec.at(0); 
} 

इस 0 आउटपुट के रूप में उम्मीद है, लेकिन यह एक गैर-आरंभिकृत पढ़ने को पता चलता है कि अगर मैं drmemory के साथ एक स्मृति जांच चलाने के। क्या कोई इस व्यवहार को समझने में मदद कर सकता है?

प्लेटफार्म: win32; कंपाइलर: mingw32 - gcc 4.7.2; ड्रममरी 1.6.0 - बिल्ड 2

+5

'वेक्टर ' अजीब है। –

उत्तर

8

std::vector<bool> अपने लक्ष्यों को प्राप्त करने के लिए थोड़ा सा झुकाव का उपयोग करके एक विचित्र छोटी बात है। मैं इस उदाहरण में संतुष्ट हूं कि आप जो देख रहे हैं वह सिर्फ एक लाल हेरिंग है।

कहा जा रहा है, you might be better off with some other container, क्योंकि this template specialisation is universally despised

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