Using auto in loops c++
I get warning signed/unsigned mismatch for the following code: auto n = a.size(); for (auto i = 0; i < n; i++) { } The problem is that by assigning 0 to i it becomes int rather than size_t . So what is better: size_t n = a.size(); for (size_t i = 0; i < n; i++) { } or this: auto n = a.size(); for (size_t i = 0; i < n; i++) { } or maybe you have a better solution? I like the first one more because it is bit more consistent, it just uses size_t rather than both size_t and auto for the same purpose. A range based loop could be a cleaner solution: for (const auto& i : a) { } Here, i is a const