From f5951a91591c7d17fa6985bff102acfae52ed9b1 Mon Sep 17 00:00:00 2001 From: Lugaricci Date: Sun, 5 Apr 2026 23:39:57 +0200 Subject: [PATCH] zmeny, ktere uprimne ani nevim jake jsem udelal --- Containery (vector, list, map).md | 55 +++++++++++++++++++++++++++++++ Přetěžování operátorů.md | 1 + Reference.md | 6 ++-- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/Containery (vector, list, map).md b/Containery (vector, list, map).md index 6479d78..3dba2fc 100644 --- a/Containery (vector, list, map).md +++ b/Containery (vector, list, map).md @@ -155,6 +155,61 @@ int main() { } ``` # List +V podstatě se ovládá jako vektor, akorát má odlišné vlastnosti rychlosti přístupu k prvkům. V listu je pomalejší vyhledávat prvek (najít prvek na n-té pozici -> O(n)). Mazání a přidávání prvku bývá ale jednodušší (pokud nejprve nehledáme pozici -> O(1)). + +List jako knihovnu přidáme pomocí `#include ` + +## Inicializace +```cpp +#include + +int main(void) +{ + list cars; //prazdný list stringů + list numbers; //prázdný list integerů + list names = {"Perec","Maxim","Sasha"}; //list se jmény +} +``` + +## Přístup +Pro **přístup** můžu využít funkce jako `l.front()` nebo `l.back()`. Popřípadě `list[]` +```cpp +#include +#include + +int main(void) +{ + list matematika = {"Matalyza1", "Lingebra", "Matalyza2", "Komplexni analyza"}; + std::cout << cvut.front() << std::endl; + std::cout << cvut.back() << std::endl; + std::cout << cvut[3] << std::endl; + + //vypise + //FEL + //FBmi + //FA + + cvut.front() = "Lingebra"; + cvut.back() = "Lingebra"; + cvut[2] = "Lingebra"; +} +``` + +![memisek](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fi.imgflip.com%2F6u2ya3.jpg&f=1&nofb=1&ipt=8b0e934fe6180c291970bec0d68bc984f2943e6dfc4c54b509e8bc5a6e1ef991) + +**DOPLN CO SE STANE KDYZ ACCESS MIMO INDEX!** + +## Pomocné funkce +Krom funkcí + +Projetí listu pomocí for loop: +```cpp +list veta = {"Co", "je", "moje", "to", "je", "tvoje"}; + +for (int i = 0; i < cars.size(); i++) { +  cout << cars[i] << "\n"; +} +``` # Map diff --git a/Přetěžování operátorů.md b/Přetěžování operátorů.md index afe12e8..a22a7e4 100644 --- a/Přetěžování operátorů.md +++ b/Přetěžování operátorů.md @@ -33,6 +33,7 @@ V kódu se snažím sečíst dva různé objekty, ale nejde to, protože součet **Já to ale můžu spravit tím, že si operaci pro součet sám definuju...** ```cpp #include +using namespace std; class Number { diff --git a/Reference.md b/Reference.md index bb1df87..f73acca 100644 --- a/Reference.md +++ b/Reference.md @@ -8,7 +8,7 @@ Reference je v podstatě jako **konstantní ukazatel** s jistými omezeními: Zásadní mentální rozdíl taky můžeme hledat v tom, co to vlastně je. Ukazatel je proměnná s adresou v paměti, zatímco reference je alias pro objekt/proměnnou. -``` +```cpp int x = 5; # nějaká proměnná x int& r = x; #inicializace reference, musí mít hodnotu. @@ -19,7 +19,7 @@ p = &x; ``` Referenci nelze přesměrovat na jinou adresu/proměnnou -``` +```cpp int a = 1; int b = 2; @@ -35,7 +35,7 @@ r = b; #reference nabírá hodnoty b, teď a = b K čemu to je dobré? - stále můžu používat referenci na předání funkci. **To je hlavní důvod existence referencí - bezpečnější a čitelnější předávání parametrů místo ukazatelů.** -``` +```cpp void increment(int& r) { r++; #melo by zvysit jakoukoli promennou, co je predana jako parametr