Bir dizeyi tek bir karaktere veya bir dizeye bölmek istiyorum. Ittifak dizgisi temel dizgi işleme için standart olduğumuzdan (birkaç tekniği karıştırmak istemiyorum) boost::split
'u kullanmak istiyorum.Boost tek bir karakterle ya da sadece bir dize ile bölünür
Tek karakter durumunda split(vec,str,is_any_of(':'))
yapabilirdim, ancak yalnızca tek bir karakter belirtmenin bir yolu olup olmadığını bilmek istiyorum. Performansı artırabilir, ancak daha da önemlisi kodun tek bir karakterle daha açık olacağını düşünüyorum, çünkü is_any_of istediğim şeyin farklı bir anlamını taşımaktadır.
Bir dizeyle eşleşme için hangi sözdizimini kullanacağımı bilmiyorum. Bir regex oluşturmak istemiyorum; split(vec,str,match_str("::")
gibi bazı basit sözdizimi iyi olurdu.
Hepsi iyi. Teşekkür ederim. –
Yardım ettiğine sevindim :-) –
C++ 11 cevap: '[] (char c) {dönüş c == ':'}' yerli lambda. – MSalters