C++编程规范:在for循环中使用 != 而不是使用 <

在for循环中索引 i 的条件判断中,我们要使用 != 而不是使用 <,原因有以下两点:

(1)C++中许多的STL容器都定义了迭代器和 != 运算符,而绝大多数没有定义< 运算符与下标运算,考虑到编程风格的通用性(在标准库提供的所有容器都有效),我们要养成使用迭代器与 != 的习惯。

(2)使用 != 的判断速度可能比使用 < 更快(我也不确定对不对,可能和计算机的底层逻辑有关)。

代码示例:

class Solution {
    
    
public:
    int removeDuplicates(vector<int>& nums) {
    
    
        int k=1;
        const int length=nums.size();
        // 不要写成 for(int i=1;i!=nums.size();i++),否则每次循环都要计算一次nums.size()
        for(int i=1;i!=length;i++)
            if(nums[i]!=nums[k-1]){
    
    
                nums[k]=nums[i];
                k++;
            }
        return k;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_43799400/article/details/130514575
今日推荐