Wpis z mikrobloga

Podrzućcie jakieś ciekawe, albo zaawansowane(albo nie podstawowe) pytania/zadania rekrutacyjne dla programisty C++.
Mogą być też z rzeczy powiązane np. linuks, narzędza, algorytmy.

Moje:
1. Zaimplementuj shared/unique pointer
2. Jakie znasz optymalizacje i flagi kompilatora. Czyli O2, O3, tco, sso, Wall, Wpathetic itd.
3. Opisz cały proces budowania - kompilacja, linkowanie itd.
4. Ogólnie o architekturze komputera i cache`u, dlaczego jest to ważne, hot loopy, false sharing.
5. Omów czym jest std::unordered_map i porównaj jego złożoność do std::map

Nie przygotowuje się do rozmowy, tylko chcę się czegoś ciekawego dowiedzieć, bo sprawia mi to dużo frajdy, a coraz rzadziej spotykam fascynujące tematy.
#cpp #programowanie
  • 22
  • Odpowiedz
@Iryfed:

Jak szedłem na staż to znałem odpowiedź może na te 5 pytań z tego wątku xD
1. Czym się różni wątek od procesu?
2. Anonymous namespace - jak działa, kiedy i po co się to stosuje
3. różnica między reserve a resize na przykładzie std::vector
4. Różnica między operator[] a at()
5. Do czego służy std::chrono
  • Odpowiedz
Najprostsza implementacja shared_ptr jest raczej trywialna.


@groman43: dowód jest trywialny ( )

shared_ptr to nie tylko zliczanie strong referencji
to także:
- zliczanie weak referencji
- deleter(shared_ptr nie potrzebuje wirtualnego destruktora, a shared_ptr posprząta co trzeba)
- custom deleter
- shared_ptr który trzyma cudzy licznik referencji
- makeshared który optymalizuje fragmentację pamięci
- trzymanie reference countera mimo wyzerowania strong referencji, ale mamy jeszcze weak referencje
  • Odpowiedz