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

Sortowanie i maksymalna wielkość tablicy ?

Object Storage Arubacloud
0 głosów
363 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 Ekspert (344,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 Ekspert (344,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ź 234 wizyt
pytanie zadane 31 stycznia 2020 w C i C++ przez disi22 Początkujący (300 p.)
0 głosów
1 odpowiedź 1,881 wizyt
pytanie zadane 6 lutego 2017 w C i C++ przez Oskar Gramsz Początkujący (270 p.)
0 głosów
1 odpowiedź 358 wizyt
pytanie zadane 26 grudnia 2016 w C i C++ przez silnyjakzubr Nowicjusz (240 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...