我基本上是在尝试使用向量,但是它有一个问题。顺便说一句,我要解决的问题是USACO 2014年12月青铜问题#4。代码在下面。
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int num,min,max;
cin>>num>>min>>max;
vector <pair<int,int> > cow;
for(int a=0;a<num;num++)
{
int temp;
int temp2;
cin>>temp>>temp2;
cow.push_back (temp2);
if(temp=="NS")
cow[a].second=0;
else if(temp=="S")
cow[a].second=1;
}
sort(cow.begin(),cow.end());
int count=0;
cout<<"Count="<<count<<endl;
for(int b=0;b<num;b++)
{
cout<<"Weight: "<<cow[b].first;
if(cow[b].second==0)
cout<<"Spots: NO"<<endl;
else if(cow[b].second==1)
cout<<"Spots: YES"<<endl;
}
}
预期结果应该是向量应按数字顺序排列,但我仍停留在第一步。另外,它给我的错误是:没有匹配的成员函数来调用'push_back'
我不知道该如何处理,也找不到类似问题的在线资源。有人可以帮忙吗?
* edit:将int temp更改为字符串temp
答案 0 :(得分:2)
您声明了一个向量对,但是将一个int推回到向量中