不得不说外国的技术博客还是要比中国的好太多,之前一直迷茫与range-based for loops中究竟&&与&该怎么用的问题,看了一下国外的技术讨论,真是豁然开朗,而国内的技术博客,几乎就没有见这方面的东西。
for(auto i : c)
一般用for(auto i : c)就是一个正常的拷贝,如果是一个类的话,会调用复制构造函数。
vector<int> c = {
1, 3, 5, 7, 9};
for (auto i : c)
cout << i << ' ';
如果遍历的是基本类型的话,可以这么用,如果是类的话,开销比较大,不推荐。
for(auto &i : c)与for(const auto &i : c)
这个就是i是c的引用,开销小,不会调用复制构造函数,如果