M.K*_*led -4 c++ console vector codeblocks
不知道我的问题在哪里.我尝试编译一次代码并且它有效.但是,我将它复制到一个新项目中以便修改它,只是颜色或等待的时间,它只适用于第一个程序.怎么了?我感到非常沮丧.使用此代码,我想绘制正弦函数.这是我的代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t,n1,n2,res=0;
cin>>t;
vector<int> v1;
vector<int> v2;
while (t--) {
cin>>n1>>n2;
v1.push_back(n1);
v2.push_back(n2);
}
for (int i=v1.size();i>0;i++) {
bool state=binary_search(v2.begin(),v2.end(),v1[i-1]);
if (state){
v1.pop_back();
res++;
}
}
cout<<res<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
更改
for (int i=v1.size();i>0;i++)
Run Code Online (Sandbox Code Playgroud)
至
for (int i=v1.size();i>0;i--)
Run Code Online (Sandbox Code Playgroud)
否则你会在边界后面访问 - > UB.
甚至是内存中的另一个段 - > SIGSEGV.
"...... 完全排序的范围符合这些标准."
所以在打电话之前binary-search你必须这样做
std::sort (v2.begin(), v2.end());
Run Code Online (Sandbox Code Playgroud)