用cppchecker静态分析代码的时候,提示把for循环里面迭代器的后置++改为前置++,因为后置++会产生临时变量,特意去翻了一下Visual Studio迭代器的实现: _Tree_iterator& operator++() { // preincrement ++static_cast<_Mybase&>(*this); return (*this); } _Tree_iterator operator++(int) { // postincrement...
vector<int> vi{1,2,3};for(autoiter= vi.begin();iter!= vi.end();iter++);for(autoiter= vi.begin();iter!= vi.end(); ++iter); 这样的迭代中,使用++运算符,只是为了让迭代器内置的指针加一而已,并不需要指针移动之前迭代器的副本,所以使用前置++会比后置++更加节省内存,BTW,经测试,在VS2019的...