Correct me if I'm wrong, but I doubt you've ever written a program in modern C++?
Correct me if I'm wrong, but I doubt you've ever written a program in modern C++?
It's not easy to see what algorithms you're using in a C++ codebase, because most of the lines of code are taken up micromanaging details that are broadly irrelevant. Yes, C++ makes it easy to tell whether you're using 8 bytes or 16 in this one datastructure. But you drown in a sea of those details and lose track of whether you're creating 10 or 10,000 instances of it.
As for algorithms, I honestly don't know what you mean. They're all documented online with respective big-O running times[1]. If you're talking about making unintended copies of things, then yes, C++ does expect you to know what's going on... it's the whole point of the language. If that's too much for you then don't use it, but that doesn't make it a bad language (I'm not denying it has some hair-pulling moments) Use std::move() when appropriate.
[1] https://en.cppreference.com/w/cpp/algorithm/sort (see 'Complexity' section.
Then yes, I work on modern C++ codebases.
> As for algorithms, I honestly don't know what you mean. They're all documented online with respective big-O running times[1].
Nontrivial programming tends to involve implementing, or even inventing, some algorithms yourself.