C ++ Nummer aus der Mitte eines Strings extrahieren

Ich habe einvector enthältstrings die das Format von @ habtext_number-number

Z.B Example_45-3

Ich möchte nur die erste Nummer 45 im Beispiel) und nichts anderes, was ich mit meinem aktuellen Code machen kann:

std::vector<std::string> imgNumStrVec;
for(size_t i = 0; i < StrVec.size(); i++){
    std::vector<std::string> seglist;
    std::stringstream ss(StrVec[i]);
    std::string seg, seg2;
    while(std::getline(ss, seg, '_')) seglist.push_back(seg);
    std::stringstream ss2(seglist[1]);
    std::getline(ss2, seg2, '-');
    imgNumStrVec.push_back(seg2); 
}

Gibt es rationalisiertere und einfachere Möglichkeiten, dies zu tun? und wenn ja was sind sie?

Ich bitte nur aus dem Wunsch heraus zu lernen, wie man besser codiert, da der obige Code am Ende des Tages nur die erste Zahl erfolgreich extrahiert, aber es scheint langwierig und rund.

Antworten auf die Frage(16)

Ihre Antwort auf die Frage