zmeny, ktere uprimne ani nevim jake jsem udelal
This commit is contained in:
@@ -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 <list>`
|
||||
|
||||
## Inicializace
|
||||
```cpp
|
||||
#include <list>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
list<string> cars; //prazdný list stringů
|
||||
list<int> numbers; //prázdný list integerů
|
||||
list<string> 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 <iostream>
|
||||
#include <list>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
list<string> 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";
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
**DOPLN CO SE STANE KDYZ ACCESS MIMO INDEX!**
|
||||
|
||||
## Pomocné funkce
|
||||
Krom funkcí
|
||||
|
||||
Projetí listu pomocí for loop:
|
||||
```cpp
|
||||
list<string> veta = {"Co", "je", "moje", "to", "je", "tvoje"};
|
||||
|
||||
for (int i = 0; i < cars.size(); i++) {
|
||||
cout << cars[i] << "\n";
|
||||
}
|
||||
```
|
||||
|
||||
# Map
|
||||
|
||||
|
||||
@@ -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 <iostream>
|
||||
using namespace std;
|
||||
|
||||
class Number
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user