Katkat

Explain Vector, Linked List, and Polymorphism

Intercontinental ExchangeSoftware Engineer · Technical Screen

Last updated

This question evaluates competency in C++ data structures and object-oriented polymorphism, testing understanding of dynamic array versus linked-list memory layouts, random access and insertion/deletion performance, cache locality, iterator invalidation, typical use cases, and distinctions between compile-time and runtime polymorphism including overloading, templates, inheritance, and virtual functions. It is commonly asked in software engineering fundamentals interviews to assess reasoning about performance and design trade-offs in C++ systems code; the domain is C++ programming, data structures, and OOP, and the level of abstraction spans both conceptual understanding and practical application.

In a C++ interview, explain the differences between a dynamic array container such as std::vector and a linked-list-based container such as std::list.

Your answer should cover:

  • Memory layout
  • Random access performance
  • Insertion and deletion trade-offs
  • Cache locality
  • Iterator invalidation
  • Typical use cases

Also explain what polymorphism means in C++, including:

  • The difference between compile-time and runtime polymorphism
  • How function overloading, templates, inheritance, and virtual functions relate to polymorphism
  • When dynamic dispatch is useful in practice