Cześć wszystkim,
Jestem kompletnie początkującym jeśli chodzi o C++, dlatego pytanie może być głupie i oczywiste, jednak nie znalazłem na nie odpowiedzi.
Mianowicie, mam za zadanie w przykładowym programie stworzyć funkcję, która posortuje mi stringi z innego pliku, względem ich długości, jednak zabronione jest używanie tablic, jak i używanie dodatkowych bibliotek. I właśnie z tym wiąże się problem, dalsza część zadania jest stosunkowo prosta, jednak nie mam pomysłu jak poruszać się po stringach bez tablic.
Z góry dziękuję za wszystkie rady.
Użyj std::vector. Chyba że chodzi o działanie na pliku bez angażowania pamięci podręcznej w ogóle, wtedy dochodzi zabawa z mmap, ale jeśli jesteś początkujący to raczej nie o to chodzi
kq napisał(a):
Użyj std::vector. Chyba że chodzi o działanie na pliku bez angażowania pamięci podręcznej w ogóle, wtedy dochodzi zabawa z mmap, ale jeśli jesteś początkujący to raczej nie o to chodzi
Nie mogę użyć std::vector, ponieważ wymaga to użycia dodatkowej biblioteki. Myślałem już o tym, no ale właśnie takie są ograniczenia.
Falqon napisał(a):
kq napisał(a):
Użyj std::vector. Chyba że chodzi o działanie na pliku bez angażowania pamięci podręcznej w ogóle, wtedy dochodzi zabawa z mmap, ale jeśli jesteś początkujący to raczej nie o to chodzi
Nie mogę użyć std::vector, ponieważ wymaga to użycia dodatkowej biblioteki. Myślałem już o tym, no ale właśnie takie są ograniczenia.
jest to bliotekla STANDARDOWA
Tak std::cin
- tego też nie wolno ?
Właściwie nie da się napisać użytecznego komunikującego się z otoczeniem programu, zupełnie bez.
Olej tablice, używaj plików , rób ich duże ilości i w nich przechowuj dane. To nie tablice tylko strumienie he he he I potem odczytywanie rozmiarów plików i sortowanie bąbelkowe he he he A struktury dozwolone czy ma byc primitve level max? Bo możesz potworzyć struktury w nich wskaźniki do plików i ich rozmiar he he he Ale to dawno nie robiłem, tylko się domyślam, ale ja bym tak kombinował. ALBO chodzi o sortowanie wraz z regularnym zapisem plików na zmianę z wstawkami aktualnego stringu w miejsce docelowe w nowym pliku. Robisz pętle z sortowaniem i szukasz w które miejsce wpisać string. I tak generujesz na zmiane dwa pliki zamiennie.
Polecenie:
Zadaniem jest zaimplementować poniższe procedury o podanych nazwach i określonych typach argumentów.
- void SortCount (string, string, string)
Podprogram odczytuje dane o podanej strukturze z pliku o nazwie przekazanej pierwszym argumentem, zaś efektem działania będą odczytane dane zapisane w pliku o nazwie przekazanej pierwszym argumentem zgodnie z relacją:- Dane ze składową typu int o większej liczności są umieszczone przed danymi o mniejszej liczności wystąpień składowej typu int.
- [...]
W rozwiązaniu nie wolno używać znaków kwadatowych nawiasów lub ich zastępników, oznaczając zakaz używania tablic.
Zabronione jest używanie typów wskaźnikowych i referencyjnych oraz dynamicznego przydziału pamięci.
Zabronione jest używanie słowa class
Zabronione jest własne włączanie plików nagłówkowych, ale można założyć dostępność plików fstream, iostream oraz string
W sumie rozumiem cel tego ćwiczenie, chyba ktoś planuje zrobienie spisu nazwisk wszystkich obywateli świata. Wtedy to by miało sens. W pamięci by nie było jednocześnie wielu danych, nic co mogłoby wzbudzić niepokój operatorów. Falqon - uczysz się u jakiegoś profesorka co ma zapędy dyktatorskie?
infinityhost napisał(a):
W sumie rozumiem cel tego ćwiczenie, chyba ktoś planuje zrobienie spisu nazwisk wszystkich obywateli świata. Wtedy to by miało sens. W pamięci by nie było jednocześnie wielu danych, nic co mogłoby wzbudzić niepokój operatorów. Falqon - uczysz się u jakiegoś profesorka co ma zapędy dyktatorskie?
Zdecydowanie tak bym to określił, jak i zapędy psychopatyczne.
Zawsze możesz użyć merge sort
i sortować używając dwóch ifstream
do odczytu oraz jednego ofstream
do zapisu.
_13th_Dragon napisał(a):
Zawsze możesz użyć
merge sort
i sortować używając dwóchifstream
do odczytu oraz jednegoofstream
do zapisu.
Merge sort nie będzie wymagać użycia nawiasu kwadratowego?