zmeny, ktere uprimne ani nevim jake jsem udelal
This commit is contained in:
@@ -155,6 +155,61 @@ int main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
# List
|
# 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
|
# 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...**
|
**Já to ale můžu spravit tím, že si operaci pro součet sám definuju...**
|
||||||
```cpp
|
```cpp
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
class Number
|
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.
|
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 x = 5; # nějaká proměnná x
|
||||||
|
|
||||||
int& r = x; #inicializace reference, musí mít hodnotu.
|
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
|
Referenci nelze přesměrovat na jinou adresu/proměnnou
|
||||||
```
|
```cpp
|
||||||
int a = 1;
|
int a = 1;
|
||||||
int b = 2;
|
int b = 2;
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ r = b; #reference nabírá hodnoty b, teď a = b
|
|||||||
|
|
||||||
K čemu to je dobré?
|
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ů.**
|
- 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)
|
void increment(int& r)
|
||||||
{
|
{
|
||||||
r++; #melo by zvysit jakoukoli promennou, co je predana jako parametr
|
r++; #melo by zvysit jakoukoli promennou, co je predana jako parametr
|
||||||
|
|||||||
Reference in New Issue
Block a user