Wpis z mikrobloga

#programowanie #cplusplus #cpp

Mam wektor wektorów w którym przechowuje stringi
vector > aaa

w tam mam
aaa 1 bbb ccc ddd ....
bbb 2 bbb ccc ddd ....
ddd 7 bbb ccc ddd ....

na drugiej pozycji mam jakieś liczby

Chciałbym żeby to wszystko było posortowane według liczb na 2 pozycji - bez zmiany innych rzeczy. Da sie coś takiego zrobić? Czego użyć?
  • 36
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MlodyInformatyk: dla wektora v:

std::sort(v.begin(), v.end(), [](auto const& l, auto const& r){ return std::stoi(l.at(1)) < std::stoi(r.at(1)); });
jeśli VS nie wspiera polymorphic lambdas:

std::sort(v.begin(), v.end(), [](std::vector const& l, std::vector const& r){ return std::stoi(l.at(1)) < std::stoi(r.at(1)); });
  • Odpowiedz
Ok, usiadłem nad tym dzisiaj - ze świeżą głową.

@KrzaQ2: Nie działa jednak to co podesłałeś. Dalej dostaję błąd out of range.

@saracenxc: Koedy korzystam z Twojego rozwiązania to na Twoim wektorze działa, a na moim już gotowym (na którym wykonywałem już inne operacje i działały).
Nie
  • Odpowiedz