【发布时间】:2020-10-30 21:54:59
【问题描述】:
我很难将两个整数作为一对向量推入。我想知道哪里出错了。谢谢!
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector <pair<int,int>> vec;
int s,n; cin>>s>>n;
for(int i=0;i<n;i++){
int in1,in2; cin>>in1>>in2;
vec[i].push_back(make_pair(in1,in2));
}
sort(vec.begin(),vec.end());
int checker=1;
for(int i=0;i<n;i++){
if(s<=vec[i].first){
checker=0;
break;
}
else{
s+=vec[i].second;
}
}
if(checker>0)cout<<"YES"<<endl;
else if(checker==0)cout<<"NO"<<endl;
return 0;
}
【问题讨论】:
-
您是否收到编译器错误?请在问题中包含它
-
你是说
vec.push_back(make_pair(in1,in2));吗? -
@Kamiccolo 我添加了 [i] 来指定索引,但这里有问题吗?
-
vec[i]是一对,但您想推入向量而不是一对。在添加一个之前,索引i处也没有元素 -
是的,我已经理解了这里的问题。我的代码现在可以工作了。谢谢!
标签: c++ c++11 vector stdvector