मैं समझता हूं कि सी ++ और एसटीएल का उपयोग करते समय वेक्टर का उपयोग बाइनरी डेटा स्टोर करने का एक अच्छा तरीका है। हालांकि मेरे यूनिट परीक्षणों के लिए मैं एक कॉन्स char * सी स्ट्रिंग चर का उपयोग कर वेक्टर को निष्क्रिय करना चाहता हूं।वेक्टर चार * वेक्टर <unsigned char> Initalisation
मैं यहां पाया कोड का एक संस्करण का उपयोग करने का प्रयास कर रहा हूँ - यह करने के लिए - Converting (void*) to std::vector<unsigned char>: बताते हुए, हालांकि कुलपति ++ संकलक लाइन वेक्टर initialising से खुश नहीं है
const char* testdata = "the quick brown fox jumps over the lazy dog.";
unsigned char* buffer = (unsigned char*)testdata;
typedef vector<unsigned char> bufferType;
bufferType::size_type size = strlen((const char*)buffer);
bufferType vec(buffer, size);
:
error C2664: 'std::vector<_Ty>::vector(unsigned int,const _Ty &)' : cannot convert parameter 1 from 'char *' to 'unsigned int'
मैं इस सवाल के चरम n00bity सराहना करते हैं और इसके बाद के संस्करण :)
अग्रिम धन्यवाद, 0 कोड पर काफी आलोचना के लिए पूरी तरह से तैयार कर रहा हूँक्रिस
आप बहुत से बेहतर कर रहे हैं का उपयोग कर: 'std :: वेक्टर vec;' ' vec.push_back (" जल्दी भूरी लोमड़ी आलसी पर कूदता है कुत्ता। ");' –
अंततः परीक्षण के तहत कोड का उपयोग बाइनरी डेटा को संभालने के लिए किया जाएगा, इसलिए वेक्टर के लिए वरीयता। परीक्षणों के लिए, मैं इसे कॉन्स्ट char * डेटा का उपयोग करके प्रारंभ करना चाहता हूं। –
आप 'std :: string :: c_str()' का उपयोग कर अंतर्निहित चार डेटा प्राप्त कर सकते हैं, और आप कच्चे पॉइंटर्स का उपयोग करने की कई संभावित समस्याओं को बचा सकते हैं। कोई बुरा सौदा नहीं आईएमओ। –