
#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ć?
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ć?
- Najlepsze
- Wszystkie komentarze







#include
int main(){
std::vector > aaa;
std::sort(aaa.begin(), aaa.end(),
[](std::vector& a, std::vector& b){
bool compare(vector a, vector b) {
return int(a[1]) < int(b[1]);
1) wskaźnik do funkcji pobierz za pomocą operatoa
&(czyli&compare)2) niech funkcja przyjmuje const referencje
3)
int(x[1])nie ma sensu (jeśli juƶ toint(x[0]), wcześniej źle zrozumiałem jego kod)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)); });http://www.algorytm.org/algorytmy-sortowania/sortowanie-szybkie-quicksort/quick-1-c.html
To zamieniłem tak
http://wklej.to/xM7oj