I participated in one on-site interview at NVidia. The interview was split into two 1-hour long sessions with different teams. Be prepared to write your code on a whiteboard.
What is a POD-type in C++?
How is std::string implemented?
How is std::vector implemented?
Suppose we have a raw int array of size N. We want to add one more value to the array. How to do it most efficiently?
Suppose we have std::vectorstd::string with N strings and no reserved space. We want to add one more element to the vector. How to implement push_back() most efficiently?
Suppose we have std::vector
We need to implement a variadic template function that takes an arbitrary number of arguments of unknown types and it should return the sum of the arguments with type int.
We have a pointer to a 2D array of size NxM - int** A. We need to get the value of element A[3][4], but we cannot use ‘[’ and ‘]’. How can we do it if we know that such an element exists?
Suppose we have class A that is publicly inherited from classes B and C. Also, class A contains a member variable of class D. We know that the constructor of class B throws an exception. If we were to create an object of class A, in which order will constructors and destructors be called?
Implement an algorithm that generates Fibonacci numbers.
In which cases would we need to use placement new?
The following metrics were computed from 1 interview experience for the Nvidia C++ Developer role in Moscow, Russia.
Nvidia's interview process for their C++ Developer roles in Moscow, Russia is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for Nvidia's C++ Developer interview process in Moscow, Russia.