我对 C++ 很陌生,我正在尝试使用结构向量,但是当我尝试编译我的代码时,我不断收到“class std::vector' has no member named 'p'”。顺便说一句,就是这样:
#include <vector>
#include <cstdlib>
#include <stdio.h>
#include <algorithm>
using namespace std;
struct animal {
int p;
int v;
};
bool cmpp (animal a, animal b) {
return (a.p < b.p);
}
bool cmpv (animal a, animal b) {
return (a.v < b.v);
}
bool cmpc (pair<animal, animal> a, pair<animal, animal> b) {
return (a.first.p < b.first.p);
}
int main(){
int c, s;
while(scanf("%d %d", &c, &s) != EOF){
vector<animal> masses[2*c];
vector<pair<animal, animal> > chamber;
for (int i = 0; i < 2*c-s; i++){
masses[i].v = 0;
masses[i].p = -1;
}
for (int i = 2*c-s; i < 2*c; i++){
masses[i].v << cin;
masses[i].p << i - 2*c-s;
}
sort(masses.begin(), masses.end(), cmpv);
for(int i = 0; i < c; i++){
if(chamber[i].p < masses[2*c-i] && chamber[i].p != -1)
chamber[i] = pair<animal, animal> (masses[i], masses[2*c-i]);
else
chamber[i] = pair<animal, animal> (masses[2*c-i], masses[i]);
}
sort(chamber.begin(), chamber.end(), cmpc);
for(int i = 0; i < c; i++){
printf("%d %d", chamber[i].first.v, chamber[i].second.v)
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码中可能还有其他错误,但我现在只想知道向量的事情。PS:这是我在这里的第一个问题:) 我知道这一天会到来!
由于某种原因,您有一组向量。
vector<animal> masses[2*c];
Run Code Online (Sandbox Code Playgroud)
应该是
vector<animal> masses(2*c);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14352 次 |
| 最近记录: |