vector<int> V{1,2,3,4,5,6,7,8,9,0};
for(auto &i : V)
{
i*=i;
}
for(auto i : V)
{
cout<<i<<endl;
}
for区间遍历:上述代码中,i 变量作用于遍历V操作对象成员数据,但不能更改,就相当于你可以搬运它,但你依旧不是它。所以你不能对它本身做任何操作。而当定义成为一个引用之后,当你遍历的时候,你绑定于V成员数据,自然可以对i进行操作。
class Solution {
public:
int longestConsecutive(vector<int>& nums) {
unordered_map<int,bool>mp;
for(auto i:nums)mp[i]=false;
int ans=0;
for(auto i:nums)
{
if(mp[i])continue;
mp[i]=true;
int length=1;
for(int j=i+1;mp.find(j)!=mp.end();j++)
mp[j]=true,length++;
for(int j=i-1;mp.find(j)!=mp.end();j--)
mp[j]=true,length++;
ans=max(ans,length);
}
return ans;
}
};