कैसे std::unique
उपयोग करने के लिए एक स्ट्रिंग से लगातार रिक्त स्थान को दूर करने पर cppreference पर एक उदाहरण नहीं है के साथ अद्वितीय उदाहरण:std :: कोई तुल्यता संबंध (लगातार space निकालें)
std::string s = "wanna go to space?";
auto end = std::unique(s.begin(), s.end(), [](char l, char r){
return std::isspace(l) && std::isspace(r) && l == r;
});
// s now holds "wanna go to space?xxxxxxxx", where 'x' is indeterminate
std::cout << std::string(s.begin(), end) << '\n';
हालांकि, के लिए आवश्यकताएं अनुभाग में अद्वितीय यह
तत्वों को दिए गए बाइनरी भविष्यवाणी पी का उपयोग करके तुलना की जाती है। व्यवहार अपरिभाषित है यदि यह समकक्ष संबंध नहीं है।
तो मेरा प्रश्न है: क्या दिया गया उदाहरण मान्य है? भविष्यवाणी स्पष्ट रूप से प्रतिबिंबित नहीं है (दो 'एन' वर्ण असमान की तुलना करते हैं) और इस प्रकार एक समानता संबंध नहीं है।
यह एक समानता है। सभी गैर-रिक्त स्थान अद्वितीय हैं। – stark
यह रिफ्लेक्सिविटी है जो टूटा हुआ है ('ए ~ ए'), समरूपता सही है ('~ ~बी ~ ए') – Jarod42
@ जारोड 42: हाँ, मैंने इसे ठीक किया है, मेरा मतलब है रिफ्लेक्सिव – Andre