多重定义,可以for(int i=0,j=0;;)但是i和?j一定要是同一个类型,不允许两个声明
for(auto beg=v.begin(),end=v.end();beg!=end;++beg)
{
auto &r=*beg
r*=2;
}
以上为范围for与之等价的普通for语句
范围for需要end()不变,若在其中删除添加元素,则会导致迭代器失效,在P315会详细解释
5.4.1 可用与练习5.12相似的思路,输入一个存一个
int current_cnt=1;
string current_str,pre_str="",max_str;//初始为空,不初始也会默认构造,都行
int max_cnt;
while(cin>>current_str)
{
if(current_str==pre_str)
++current_cnt;
if(current_cnt>max_cnt)
{
max_str=current_str;
max_cnt=current_cnt;
}
else
current_cnt=1;//不大于恢复本来的个数1
pre_str=current_str;
}
5.17
可用迭代器操作,因为不改变,可用c++11新标准cbegin()
anto it=v.cbegin();只读 P98