Byla vydána verze 1.79.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Byly zveřejněny výsledky průzkumu (infografika) mezi uživateli FreeBSD.
Na konferenci DevConf.CZ 2024 je na stánku Furi Labs prezentován linuxový telefon FuriPhone FLX1. Jeho cena 499 dolarů.
Bylo vydáno Eclipse IDE 2024-06 aneb Eclipse 4.32. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-2 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Po roce od vydání verze 15.5 bylo vydáno openSUSE Leap 15.6. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.
Byla vydána nová verze 256 správce systému a služeb systemd (GitHub). Nově mimo jiné s run0 jako alternativou k sudo.
Společnost Oracle oznámila spolupráci s Google Cloudem, OpenAI a Microsoftem.
Zítra začne v Brně na FIT VUT třídenní open source komunitní konference DevConf.CZ 2024. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
Google Chrome 126 byl prohlášen za stabilní. Nejnovější stabilní verze 126.0.6478.55 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
#include <iostream> #include <vector> #include <algorithm> #include "Rational" using namespace std; int main() { vector<XMath::Rational<int> > cisla; vector<XMath::Rational<int> >::const_iterator ci; cisla.push_back(XMath::Rational<int>(2, 3)); cisla.push_back(XMath::Rational<int>(3, 4)); cisla.push_back(XMath::Rational<int>(1, 2)); cisla.push_back(XMath::Rational<int>(4, 5)); cout << "Čísla na začátku" << endl; for (ci = cisla.begin(); ci != cisla.end(); ++ci) { cout << *ci << endl; } sort(cisla.begin(), cisla.end()); cout << "Čísla na konci" << endl; for (ci = cisla.begin(); ci != cisla.end(); ++ci) { cout << *ci << endl; } return 0; }Sestupné třídění obstará funkce
sort
. Stačí zadat iterátory ukazující na začátek a konec seznamu, třídění se potom provede jakoby zázračně samo. Pokud nejsou použity vestavěné číselné typy, je potřeba napsat přetížené operátory porovnání.
Pro přeložení jsou potřeba dva hlavičkové soubory se šablonami, které jsou k dispozici tady.
Třídit lze i jinak – man qsort
. Často je zbytečné se namáhat s psaním třídicího kódu a postačují funkce z knihovny C nebo STL.
/** * 1. Dedit od konkretnich typu (std::vector<FileInfo*>) se moc nedoporucuje. * Akorat tam podivne redeklarujete stadardni metody - docela bych chtel * videt jejich definice. * * 2. Pokud chcete kontrolu pod g++/libstdc++ pouzijte * * g++ -D _GLIBCXX_CONCEPT_CHECKS -D _GLIBCXX_DEBUG -o file.o file.cc * * a nemusite sasit s at. Plus vam to ohlida spoustu dalsich veci. * * 3. Nasledujici kod jsem netestoval. * */ #include <vector> #include <algorithm> #include "FileInfo.h" bool lt_file_info(const FileInfo* f1, const FileInfo* f2) { if( f1->isDots() != f2->isDots() ) return f1->isDots() < f2->isDots(); if( f1->isDir() != f2->isDir() ) return f1->isDir() < f2->isDir(); // zjistete si, co tahle funkce vraci a podle toho se // zaridte (a co prebira - podle deklarace, kterou jste // uvedl, gchar, ale getName vraci std::string) return g_utf8_collate(f1->getName(), f2->getName()); } void test() { std::vector<FileInfo*> file_list; std::sort(file_list.begin(), file_list.end(), lt_file_info); }
qsort
ze stdlib.h
se taky použít nedá. Asi si budu muset napsat nejakej ten quicksort sám.
tím ukazatelem na fci by nebyl problém, deklaroval bych jí jako static, problém by byl, že bych pak neměl ukazatel this a pak bych stejně nezjistil, dle čeho řadit.Omlouvám se že vám do toho lezu jako člověk co se s C++ rozloučil dávno před STL... ale podle dokumentace ten třetí parametr metody sort není funkce, ale functor (tedy objekt)! Tedy stačí udělat objekt jako potomek
binary_function
, kterů bude třídit podle toho co je potřeba.
Něco je o tom psáno zde, i s příklady.
Pro jine pripady (razeni podle data) samozrejme nadefinujete jinou porovnavaci funkci a budete volat sort s jinou porovnavaci funkci. Taky muzete udelat malou hirearchii trid s virtualnim 'operator<'. Jak je ctena libost. Ale nechapu, proc si chcete vyrabet svuj vlastni sort - tim si akorat pridelate praci a nadefinovani vsech porovnani se stejne nevyhnete.
Tiskni Sdílej: