Společnost IBM představila novou generaci svých serverů: IBM Power11.
Multiplatformní digitální pracovní stanice pro práci s audiem Ardour byla postavena na GTK2. Vývojáři neplánovali její portaci na GTK3 nebo GTK4. Naopak, v lednu loňského roku si vytvořili vlastní fork GTK2 s názvem YTK. Ten v únoru letošního roku přestal být volitelným a nově byla zcela odstraněna podpora GTK2.
Byla vydána nová verze 6.4 linuxové distribuce Parrot OS (Wikipedie). Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Společnost initMAX pořádá sérii bezplatných webinářů věnovaných novému Zabbixu 7.4. Podrobnosti a registrace na webu initMAX.
… více »Byla vydána verze 7.0 open source platformy pro správu vlastního cloudu OpenNebula (Wikipedie). Kódový název nové verze je Phoenix. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.
E-mailový klient Thunderbird byl vydán ve verzi 140.0 ESR „Eclipse“. Jde o vydání s dlouhodobou podporou, shrnující novinky v upozorněních, vzhledu, správě složek a správě účtů. Pozor, nezaměňovat s průběžným vydáním 140.0, které bylo dostupné o týden dříve.
Organizace Video Games Europe reprezentující vydavatele počítačových her publikovala prohlášení k občanské iniciativě Stop Destroying Videogames.
Společnost Raspberry Pi nově nabzí Raspberry Pi Camera Module 3 Sensor Assembly, tj. samostatné senzorové moduly z Raspberry Pi Camera Module 3.
Cathode Ray Dude v novém videu ukazuje autorádio Empeg Car (později Rio Car) z let 1999–2001. Šlo o jeden z prvních přehrávačů MP3 do auta. Běží na něm Linux. Vyrobeno bylo jen asi pět tisíc kusů, ale zůstala kolem nich živá komunita, viz např. web riocar.org.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.7.
#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: