Re:Simple Trie Implementation in C++11
by mehrdadn on Sunday July 21, 2019 @03:37PM
(#20493214)
You mean for competitions, or in general? For competitions, go with whatever is faster/reduces your typing. In general, I think a lot of people would the same thing, but I'm in the (apparently small?) camp that thinks auto is massively overused. I use typedefs liberally instead of using auto all over the place. It prevents some implicit casts from being inhibited (which are rare, but which can cause correctness issues), and it documents things better. The cost is more typing, which in my view is just something you have to learn C++ is not intended to minimize.
[ Parent
| on HN ]
I think typing isn't my issue (so far), but rather the performance. On one hand, it's one less thing to think about while figuring out a problem, but on the other hand, it might reduce the performance of my solution, and in that case, going back and refactoring the code to use the correct types would be a waste of time...
You seem to have a misconception of what `auto` entails... It just means "deduce type from the right-hand side of the assignment statement", instead of having to type it explicitly. Doesn't make your program dynamically typed or runtime typed all of a sudden.
Oh interesting. Why do you think auto would affect run-time performance? Could you describe an example?
I think auto won't have any run-time performance since type deduction happens at compile-time.
Also read this https://stackoverflow.com/questions/19618759/c-11-auto-compi...
I'm already well aware of this. I'm asking why the OP thinks otherwise. It's not outright impossible to make it affect performance [1] but I'm trying to see what the concern is.
[1] Like by taking the approach that results in a cast, e.g. here: https://news.ycombinator.com/item?id=20493263
Oh, I see. I didn't know that type deduction happens at compile-time :o
Yeah, that's how type systems work in most languages. That's why we have them: they prevent mistakes before you even run your code :)