for循环中的小技巧
for(int i; ; ++i) {
dosomething;
if (i == xxx) {
do something unique;
break;
} else {
do something before ++i;
}
}
处理一个循环,需要对最后一个元素特殊处理,(如链表中最后一个节点的next指针为空),可以不在for中判断i的范围,而是在循环内部判断i的值,同时到达最后一个时进行特殊处理,并break
否则要么得把i写外边,要么得留个指针保留最后一个元素地址,要么得在for(; i < xx; ) 的同时,每次循环额外再判断一次if(i == last),可以丢掉for(; ;)中的i的范围判断。
按照上面的写法可以减少判断次数。
6到没朋友
浙公网安备 33010602011771号