2012-06-05 23 views
14

std::array<char, N> से std::string में कनवर्ट करने का सबसे अच्छा तरीका क्या है?std :: array <char, N> std :: string

मैंने टेम्पलेट विधि बनाने का प्रयास किया है लेकिन कोई भाग्य नहीं है। मुझे लगता है कि मेरे सी ++ कौशल सिर्फ खरोंच तक नहीं हैं। क्या सी ++ में ऐसा करने का एक बेवकूफ तरीका है?

+0

['std :: copy'] (http://msdn.microsoft.com/en-us/library/x9f6s1wf (v = vs.80) .aspx) –

उत्तर

32

मैंने ऐसा नहीं होगा यह "सबसे अच्छा तरीका है" है, लेकिन एक तरह से उपयोग करने के लिए है std::string के iterator constructor:

std::array<char, 10> arr; 
... // fill in arr 
std::string str(std::begin(arr), std::end(arr)); 
+0

वाह। इस तरह के एक छोटे से सवाल पूछने के लिए माफ़ी। –

+6

'std :: array' में सदस्य कार्य के रूप में 'प्रारंभ' और 'end' भी है। –

+0

हाँ, मैं 'std :: string (arr.begin(), arr.end()) का उत्तर देने वाला था। बहुत देर। –

8

यदि सरणी में एक अशक्त समाप्त स्ट्रिंग है तो:

std::array<char, 4> arr = {'a','b','c',0}; 
std::string str(arr.data()); 
संबंधित मुद्दे