क्यों मैं कठबोली का उपयोग नहीं कर सकता :: एसटीडी के साथ कॉपी :: स्ट्रिंग दूसरे स्ट्रिंग के लिए :: स्ट्रिंग? [डुप्लिकेट]
निम्नलिखित कोड एक खाली स्ट्रिंग प्रिंट करता है और मैं यह समझने में असमर्थ हूं कि ऐसा क्यों है?
#include <string>
#include <algorithm>
#include <iostream>
int main()
{
std::string s="hello";
std::string r;
std::copy(s.rbegin(),s.rend(), r.begin());
std::cout<<r;
return 0;
}
जवाब
5 songyuanyao
समस्या r
एक खाली है std::string
, इसमें कोई char
एस नहीं है । std::copy
के char
बाद से कॉपी-असाइन करने की कोशिश कर रहा है r.begin()
, जो यूबी की ओर जाता है।
आप r
पहले से 5 तत्व युक्त बना सकते हैं ।
std::string r(5, '\0');
या
std::string r;
r.resize(5);
या उपयोग करें std::back_inserter
।
std::string r;
std::copy(s.rbegin(),s.rend(), std::back_inserter(r));