fbpx
20 maja 2018

Pytania rekrutacyjne 05.2018

Pytania rekrutacyjne C++ – paczka majowa. W tym miesiącu na tapecie mamy STL, czyli bibliotekę standardową języka C++.

1. Zaznacz prawdziwe stwierdzenia:
  1. Agregowanie kontenerów STL może spowodować problemy z wyrównaniem pamięci
  2. Dziedziczenie po kontenerach STL jest niebezpiecznie, ponieważ ich destruktory nie są wirtualne.
  3. Właściwym sposobem rozszerzania interfejsów kontenerów STL jest ich agregacja i przepisanie ich interfejsu.
  4. Kontenery STL powinny być rozszerzane poprzez dziedziczenie po nich

 

2. Zaznacz prawdziwe stwierdzenia:
  1. W std::deque elementy mogą być dodawane zarówno na koniec, jak i na początek kontenera używając push_front i push_back
  2. std::set wspiera dostęp do dowolnego elementu (random access)
  3. std::vector wspiera dostęp do dowolnego elementu (random access)
  4. std::deque wspiera dostęp do dowolnego elementu (random access)
  5. std::multimap pozwala przechowywać wiele wartości dla każdego klucza
  6. W std::set elementy mogą się powtarzać
  7. W std::map klucze muszą być unikatowe

 

3. Jaka będzie zawartość wektorów v1 i v2?
std::vector<int> v1(10, 1);
std::vector<int> v2{10, 1};
  1. v1 = {10}, v2 = {10, 1}
  2. v1 = {10, 1}, v2 = {10, 1}
  3. v1 = {10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, v2 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
  4. v1 = {10, 1}, v2 = {10, 10, 10, 10, 10, 10, 10, 10, 10, 10}
  5. v1 = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, v2 = {10, 1}
  6. Program się nie kompiluje.

 

4. Jaka będzie zawartość wektora v po wykonaniu poniższego kodu?
std::vector<int> v {2, 3, 4};
for(auto e : v)
    e *= e + v.front();
  1. {8, 33, 48}
  2. {8, 15, 24}
  3. {6, 11, 18}
  4. {8, 17, 24}
  5. {2, 3, 4}

 

Prawidłowe odpowiedzi do pytań rekrutacyjnych są przesyłane cyklicznie wszystkim osobom, które zasubskrybowały listę mailingową Pytania rekrutacyjne. Chcesz poznać prawidłowe odpowiedzi? Zapisz się tutaj.