Hacker News new | ask | show | jobs
by quinnftw 3355 days ago
One nitpick (and this applies to almost every site of this genre, i.e. geeksforgeeks, hackerrank, etc.):

The code listed as "C++" is essentially C with ostreams. If I were interviewing someone and they claimed to know C++, and then used "sizeof(A) / sizeof(A[0])" to get the size of an array, I'd question how much C++ they actually knew. I understand that the focus here is mainly on problem solving and not language specific patterns, but when you advertise the site as a coding interview helper I think that the solution code should reflect that which should be written in an actual interview.

4 comments

> If I were interviewing someone and they claimed to know C++, and then used "sizeof(A) / sizeof(A[0])" to get the size of an array, I'd question how much C++ they actually knew.

Or they've spent a lot of time in embedded systems development. Many of us write rather C-ish C++ because of the limitations of older compilers and the age of the code bases.

Genuine curiosity because I don't have a whole lot of experience with embedded systems: Why not just use C then?

Either way I would argue that using sizeof in that way is a sketchy practise.

C++ is a large language that can be used in many different ways. People adopt a subset that is sensible for them. If you are interviewing C++ programmers, you should be aware of it.
Here's refined list using STL if you like -

http://www.techiedelight.com/data-structures-and-algorithms-...

So you prefer to use std::array over C arrays?
std::vector

What do you think std:array are?

I know, just a class version of the C-array but std::vectors has lower performance. I believe that std::array or C array are good enough for problems with non-dynamic input.
std::array is stack allocated array with known size compile time. std::vector is dynamically allocated array (on heap).

So C array equivalent = std::array, not std::vector.

The point of the parent was to write C++ code the C++ way. Most arrays in real programs should be std::vector.

Imitating C arrays with std::array is the perfect example of bastardized C/C++ code.

Using std::array is writing code C++ way. If you know size of the array compile time and you know it will fit the stack then there is no reason to use std::vector.