首页 > 解决方案 > Codeforces 中的“诊断检测到问题 [cpp.g++17-drmemory]: ~~Dr.M~~ Dr. Memory 版本 1.11.0”错误是什么?

问题描述

我在 codeforces 中提交代码时收到此错误,我不知道此错误

任何人都可以请帮助!我认为这个问题与一些记忆有关。它失败了第二个测试用例,这对于出现运行时错误来说没有那么大!

'诊断检测到问题 [cpp.clang++-diagnose]: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\include\vector:1802:10:运行时错误:引用绑定到类型为“std::_Simple_types::value_type”(又名“int”)的空指针 摘要:UndefinedBehaviorSanitizer:未定义行为 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\ MSVC\14.11.25503\include\vector:1802:10 in'

这是我的代码:

    #include <bits/stdc++.h>

using namespace std;


#define ll long long
#define pb push_back
#define fast() ios_base::sync_with_stdio(false);cin.tie(NULL);

#define deci(n) fixed << setprecision(n)
#define test() int t;cin >> t;while (t--)
#define loop(i,a,n) for(int i=a;i<n;i++)


typedef vector<int> vi;


const int MOD = 1e9 + 7;

//********************THE END OF TEMPLATES*******************//
int main()
{
    fast();
    test()
    {
        int n,k;
        cin>>n>>k;
        vi arr(n,0);
        loop(i,0,n)
        {
            cin>>arr[i];
        }
        vi peek_index_array;
        loop(i,1,n-1)
        {
            if(arr[i]>arr[i-1] && arr[i]>arr[i+1])
                peek_index_array.pb(i);
        }
        int max_peek=0;
        int size=peek_index_array.size();
        int total=1;
        int right_index=0;
        queue<int> peek_queue;
        peek_queue.push(peek_index_array[0]);
        loop(i,1,size)
        {
            if(peek_index_array[i]-peek_queue.front()<=k-3)
            {
                total++;
                peek_queue.push(peek_index_array[i]);
            }
            else
            {
                if(total>max_peek)
                {
                    max_peek=total;
                    right_index=peek_index_array[i-1];
                }
                while(!peek_queue.empty() && peek_index_array[i]-peek_queue.front()>k-3)
                {
                    peek_queue.pop();
                    total--;
                }
                peek_queue.push(peek_index_array[i]);
                total++;
            }


        }
        // cout<<"total,max"<<total<<max_peek<<endl;
        if(total>max_peek)
        {
            max_peek=total;
            right_index=peek_index_array[size-1];
        }
        int left_index=right_index-k+3<=0? 1: right_index -k +3;
        cout<<max_peek+1<<" "<<left_index<<endl;

    }


    return 0;
}

标签: c++11error-handlingruntime-errorruntimeexception

解决方案


推荐阅读