मैं एक सिंगल कैरेक्टर या स्ट्रिंग पर एक स्ट्रिंग को विभाजित करना चाहता हूं। मैं boost::split
का उपयोग करना चाहता हूं क्योंकि बूस्ट स्ट्रिंग मूल स्ट्रिंग हैंडलिंग के लिए हमारा मानक है (मैं कई तकनीकों को मिश्रण नहीं करना चाहता)।बूस्ट एक सिंगल कैरेक्टर या सिर्फ एक स्ट्रिंग के साथ विभाजित
एकल वर्ण मामले में मैं split(vec,str,is_any_of(':'))
कर सकता था लेकिन मैं जानना चाहता हूं कि केवल एक ही वर्ण निर्दिष्ट करने का कोई तरीका है या नहीं। यह प्रदर्शन में सुधार कर सकता है, लेकिन अधिक महत्वपूर्ण बात यह है कि कोड केवल एक ही चरित्र के साथ स्पष्ट होगा, क्योंकि is_any_of एक अलग अर्थ बताता है जो मैं चाहता हूं।
एक स्ट्रिंग के खिलाफ मिलान करने के लिए मुझे नहीं पता कि किस वाक्यविन्यास का उपयोग करना है। मैं एक रेगेक्स बनाना नहीं चाहता; split(vec,str,match_str("::")
जैसे कुछ सरल वाक्यविन्यास अच्छे होंगे।
वे सभी अच्छे हैं। धन्यवाद। –
मुझे खुशी है कि इससे मदद मिली :-) –
सी ++ 11 उत्तर: '[] (char c) {वापसी c == ':'} 'i.e. देशी lambda। – MSalters