vector数组比较大小

来源:2-5 语言的标识符和关键字

我是笨笨蛋

2020-03-10

请问两个vector数组比较大小时,可以直接用数组名字比较吗
这是我在LeetCode上看到的代码:
vector findAnagrams(string s, string p) {
if(s.size()<p.size()) return {};
int l=0;
int r=-1;
vectorfrep_s(26,0),frep_p(26,0),res;
for(int i=0;i<p.size();i++){
frep_p[p[i]-‘a’]++;
frep_s[s[++r]-‘a’]++;
}
if(frep_pfrep_s) res.push_back(l);
while(r<s.size()-1){
frep_s[s[++r]-‘a’]++;
frep_s[s[l++]-‘a’]–;
if(frep_sfrep_p)
res.push_back(l);
}
return res;
}

写回答

1回答

我是笨笨蛋

提问者

2020-03-10

 vector<int> findAnagrams(string s, string p) {

        if(s.size()<p.size()) return {};

        int l=0;

        int r=-1;

        vector<int>frep_s(26,0),frep_p(26,0),res;

        for(int i=0;i<p.size();i++){

            frep_p[p[i]-'a']++;

            frep_s[s[++r]-'a']++;

        }

        if(frep_p==frep_s) res.push_back(l);

        while(r<s.size()-1){

            frep_s[s[++r]-'a']++;

            frep_s[s[l++]-'a']--;

            if(frep_s==frep_p)

            res.push_back(l);

        }

        return res;

    }

以这个代码为准,上面的出错了

0
1
quickzhao
关于vector的比较我可以回答你,vector不是一般的数组,它的==运算符是经过重载的,内部会对内置类型的元素做逐个比较。另请在给出题目时给出题目的详细背景和出处,leetcode题目为了优化每个题目都有自己的上下文,上下文不清楚很难回答,请不要只贴一段代码,谢谢。
2020-03-10
共1条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程