Ahojte používam C++ na vývoj desktopových aplikácií pre linux / windows, no nakoľko som sa C++ začal učiť len minulý a tento rok (nevenoval som sa mu stále, ale s odstupmi niekoľkých mesiacov), prišiel som do kontaktu s jeho najnovšou verziou C++ 20, no teraz som prešiel aj na platformu arduino resp. esp32. Aby bolo jasné, keď píšem o arduine, mám na mysli SW platformu arduino pre ESP32 (nie HW platformu arduino)
ESP32 ma veľmi baví, žiaľ STL pre Arduino je mierne orezané (čo je pochopiteľné keže ESP32 má málo pamate a nemôže si dovoliť ňou mrhať na zbytočné metódy), takže tam chýbajú metódy, na ktoré som zvyknutý z najnovšieho STL pre C++ 20. Momentálne si robím pokusný projekt, ktorý robím len preto, aby som sa tú platformu naučil. Maličká meteostanica, ktorá by mala obsahovať rôzne senzory, bude napríklad merať aktuálnu teplotu a vlhkosť a postupne pridám ďalšie senzory... možno rýchlosť vetra vlhkoasť pôdy na dvore atď... na ESP beží asynchrónny webserver, na ktorý sa pripájam z hociakého zariadenia cez wifi. Mno a ten webserver obsahuje HTML šablóny. HTML šablóny sú uložené v súborovom systéme ESP32ky: SPIFFSFS no a keď urobím request na nejakú adresu, tak chcem aby sa šablóna loadla zo súboru len 1x a aby ostala uložená v RAMke. To znamená že si robím cahce. A na cache som chcel použiť STL kontainer std::map, problém je, že narozdiel od toho Windows / Linux std::map, std::map pre arduino neobsahuje metódu std::map::contains ani metódu [b4]std::map::find[/b]. stl síce obsahuje všeobecnú metódu std::find, kde sa vložia iterátory no obávam sa či je rovnako rýchla ako tá std::map::find. takže otázka je:
1. Aký je najvhodnejší spôsob, ako sa pri std::map (po starom) zistiť či std::map obsahuje položku? bez toho aby som použil exceptiony a metódy std::map::contains a [b4]std::map::find[/b], ktoré na platforme arduino nie sú k dispozícii?
2. je std::find vhodný na zisťovanie existencie položky pre kontainer std::map? neni std::find pomalší a nevyhľadáva položky, tak ako keby išlo o pole párov (std::pair)? Lebo vyhľadávanie v poli je niekoľkonásobne pomalšie, ako keď mám položky indexované cez kľúče nie?