我正在制作一个 C++ 代码并且发生错误我不知道为什么
I am making a c++ code and error occurs I don't know why
不知道我的问题出在哪里。我试着编译一次代码,它成功了。但是,我将它复制到一个新项目中以修改它,只是颜色或等待时间,它只适用于第一个程序。怎么了?我真的很沮丧。使用此代码,我想绘制正弦函数的图形。这是我的代码:
#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;
}
error of the console
改变
for (int i=v1.size();i>0;i++)
到
for (int i=v1.size();i>0;i--)
否则你会越界访问 -> UB.
甚至到内存中的另一个段 -> SIGSEGV.
还有 std::binary_search 说:
"... A fully-sorted range meets these criteria."
所以在调用 binary-search
之前你必须做
std::sort (v2.begin(), v2.end());
for 语句中有错字
for (int i=v1.size();i>0;i++) {
^^^
很明显你的意思是相反
for (int i=v1.size();i>0;i--) {
^^^
for语句最好写成
for ( auto i = v1.size(); i != 0; i-- ) {
^^^^
但是无论如何程序都是错误的。
首先,在使用方法 std::binary_search
之前,您必须对向量 v2
.
进行排序
第二个问题是这个调用
v1.pop_back();
不必删除在向量 v2
中找到的向量 v1
的元素。它可以只删除向量 v1
中甚至不存在于向量 v2
.
中的最后一个元素
不知道我的问题出在哪里。我试着编译一次代码,它成功了。但是,我将它复制到一个新项目中以修改它,只是颜色或等待时间,它只适用于第一个程序。怎么了?我真的很沮丧。使用此代码,我想绘制正弦函数的图形。这是我的代码:
#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;
}
error of the console
改变
for (int i=v1.size();i>0;i++)
到
for (int i=v1.size();i>0;i--)
否则你会越界访问 -> UB.
甚至到内存中的另一个段 -> SIGSEGV.
还有 std::binary_search 说:
"... A fully-sorted range meets these criteria."
所以在调用 binary-search
之前你必须做
std::sort (v2.begin(), v2.end());
for 语句中有错字
for (int i=v1.size();i>0;i++) {
^^^
很明显你的意思是相反
for (int i=v1.size();i>0;i--) {
^^^
for语句最好写成
for ( auto i = v1.size(); i != 0; i-- ) {
^^^^
但是无论如何程序都是错误的。
首先,在使用方法 std::binary_search
之前,您必须对向量 v2
.
第二个问题是这个调用
v1.pop_back();
不必删除在向量 v2
中找到的向量 v1
的元素。它可以只删除向量 v1
中甚至不存在于向量 v2
.