题解 | 数对计数|迭代器

数对计数

https://www.nowcoder.com/practice/7d05171e7e0e4c6086be233769e01d94

#include<bits/stdc++.h>
using namespace std;
multiset<int> s;
int main(){
    int n,c,counts=0;
    cin>>n>>c;
    while(n--){
        int x;
        cin>>x;
        s.insert(x);
    }
    for(auto i=s.begin();i!=s.end();){
        counts+=s.count(*i+c);
        i = s.erase(i);
    }
    cout<<counts;
    return 0;
}

不要用for(auto i : s)或int i之类的,用迭代器,且用i = s.erase(i)来更新迭代器。否则会段错误

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务