• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sortowanie i maksymalna wielkość tablicy ?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
429 wizyt
pytanie zadane 26 grudnia 2015 w C i C++ przez Kabiszon Użytkownik (890 p.)

Witam !

Mam do was dwa szybkie pytanka :)

1) Chciałbym posortować takie cudo pair <pair <int, int>, int> pary[1000005]; , ale problem tkwi w tym, że chciałbym aby tylko ta wewnętrzna para została posortowana a ten drugi element z zewnętrznej pary nie miał wpływu na sortowanie. Trochę rozjaśniając to mam kilka punktów na układzie współrzędnych i pary.first.first = x, pary.first.second = y a pary.second to numer tego punktu i teraz chcę posortować po x.

2) Jaki jest dokładny maksymalny rozmiar tablicy jednowymiarowej typu int w c++ ?

Z góry dzięki za odpowiedź :)

2 odpowiedzi

+2 głosów
odpowiedź 26 grudnia 2015 przez adrian17 Mentor (350,860 p.)
wybrane 26 grudnia 2015 przez Kabiszon
 
Najlepsza

1. Przekaż do std::sort dodatkową funkcję która będzie mu mówiła, według czego sortować. Powiedz jeśli chcesz konkretny przykład.

2. Teoretycznie maksymalna liczba elementów jest równa maksymalnej wartości typu size_t (std::numeric_limits<std::size_t>::max()). Konkretniej sizeof() dowolnego obiektu musi być wielkością typu size_t, więc dla typu int teoretyczny maksymalny rozmiar tablicy wynosi max_size_t / sizeof(int) elementów.

W praktyce wszystko zależy od implementacji, która może nie skompilować programu który próbuje alokować zbyt dużą tablicę, oraz środowiska (systemu, maszyny) która zazwyczaj nie pozwoli zaalokować więcej miejsca niż jest dostępne (w RAMie+pamięć wirtualna jeśli alokujesz na stercie, na stosie jeśli alokujesz na stosie. Stos zazwyczaj nie przekracza kilku megabajtów.)

komentarz 26 grudnia 2015 przez Kabiszon Użytkownik (890 p.)
Bardzo bym poprosił o konkretny przykład :)
komentarz 26 grudnia 2015 przez adrian17 Mentor (350,860 p.)
// aliasy typow dla czytelnosci
typedef pair<int, int> XY;
typedef pair<XY, int> Para;

bool porownaj_pary(const Para &lhs, const Para &rhs){
    return lhs.first.first < rhs.first.first;
}

int main()
{
    Para pary[10005];
    sort(begin(pary), end(pary), porownaj_pary);

    // albo z lambda zamiast osobnej funkcji:

    sort(begin(pary), end(pary),
    	[](const Para &lhs, const Para &rhs){
    		return lhs.first.first < rhs.first.first;
    	}
    );
}

 

komentarz 26 grudnia 2015 przez Kabiszon Użytkownik (890 p.)
Wow, Dzięki Wielkie !!!
0 głosów
odpowiedź 26 grudnia 2015 przez niezalogowany
1) To przekazuj tylko wewnętrzną parę do sortowania

2) Zależy od systemu: 32, czy 64bit. Z resztą odpowiedź do tego pytania masz w Google.
komentarz 26 grudnia 2015 przez Kabiszon Użytkownik (890 p.)
Mógłbyś napisać jak dokładnie przekazać tylko wewnętrzną parę ?
komentarz 26 grudnia 2015 przez niezalogowany
A w jaki sposób teraz sortujesz (wrzuć kod)
komentarz 26 grudnia 2015 przez Kabiszon Użytkownik (890 p.)
No aktualnie to nie sortuję wcale bo nie wiem jak ;P ale normalnie zwykłą tablicę par sortował bym w następujący sposób : sort(pary, pary + n);

Podobne pytania

0 głosów
1 odpowiedź 324 wizyt
pytanie zadane 31 stycznia 2020 w C i C++ przez disi22 Początkujący (300 p.)
0 głosów
1 odpowiedź 1,994 wizyt
pytanie zadane 6 lutego 2017 w C i C++ przez Oskar Gramsz Początkujący (270 p.)
0 głosów
1 odpowiedź 398 wizyt
pytanie zadane 26 grudnia 2016 w C i C++ przez silnyjakzubr Nowicjusz (240 p.)

93,173 zapytań

142,185 odpowiedzi

321,968 komentarzy

62,502 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1157p. - dia-Chann
  2. 1139p. - Łukasz Piwowar
  3. 1131p. - CC PL
  4. 1126p. - Łukasz Eckert
  5. 1118p. - Tomasz Bielak
  6. 1104p. - Michal Drewniak
  7. 1083p. - Marcin Putra
  8. 1078p. - rucin93
  9. 1071p. - rafalszastok
  10. 1054p. - Adrian Wieprzkowicz
  11. 1047p. - Piotr Aleksandrowicz
  12. 1037p. - Michał Telesz
  13. 1023p. - Mariusz Fornal
  14. 1017p. - Mikbac
  15. 1005p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...