#include<bits/stdc++.h> using namespace std; struct node{ int x, y, v; }; bool cmp(node x, node y) { return x.x!=y.x? x.x<y.x : x.y<y.y; } map<double, vector<node> >mp; int main(){ int n; cin>>n; int sum = 0, cnt = 0; for(int i = 1; i <= n; i++){ int x, y, v; cin>>x>>y>>v; sum += v; //sum肯定全拿 mp[y*1.0/x].push_back(node{x,y,v});//按斜率(方向)分类 } for(auto x : mp){ //枚举每个方向 vector<node>vc = x.second; sort(vc.begin(), vc.end(), cmp);//按x,y排序 for(int i = 0; i < vc.size(); i++){ if(i==0 || vc[i].v!=1 || vc[i-1].v!=1){ cnt++; } } } cout<<sum<<" "<<cnt<<"\n"; return 0; }为什么会有以下报错 13 35 C:\Users\86182\Desktop\未命名2.cpp [Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11 15 14 C:\Users\86182\Desktop\未命名2.cpp [Error] 'x' does not name a type 24 5 C:\Users\86182\Desktop\未命名2.cpp [Error] expected ';' before 'cout' 25 5 C:\Users\86182\Desktop\未命名2.cpp [Error] expected primary-expression before 'return' 25 5 C:\Users\86182\Desktop\未命名2.cpp [Error] expected ')' before 'return'
时间: 2024-04-16 22:25:19 浏览: 219
万能头文件#include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;
这些错误提示是由于编译器在编译代码时遇到了一些语法或配置问题导致的。以下是对每个错误的解释:
1. `[Warning] extended initializer lists only available with -std=c++11 or -std=gnu++11`:这个警告表示在代码中使用了扩展的初始化列表,但是编译器没有启用对应的 C++11 标准。为了解决这个警告,你可以在编译时添加 `-std=c++11` 或 `-std=gnu++11` 参数,以启用对应的 C++11 标准。
2. `[Error] 'x' does not name a type`:这个错误表示在代码中使用了一个未定义的变量或类型名为 'x'。可能是因为你没有提前定义变量 'x' 的类型。你需要在使用变量 'x' 之前进行类型定义,例如 `int x;`。
3. `[Error] expected ';' before 'cout'`:这个错误表示在代码中在 'cout' 之前缺少了一个分号 ';'。你需要在 'cout' 之前添加一个分号来修复这个错误。
4. `[Error] expected primary-expression before 'return'`:这个错误表示在代码中 'return' 关键字之前缺少了一个主表达式(primary-expression)。可能是因为你在 'return' 语句之前缺少了需要返回的表达式。你需要检查代码中是否缺少了对应的表达式。
5. `[Error] expected ')' before 'return'`:这个错误表示在代码中 'return' 关键字之前缺少了一个右括号 ')'。你需要在 'return' 语句之前添加一个右括号来修复这个错误。
这些错误提示指出了代码中的问题,你可以根据提示进行相应的修改来修复这些错误。另外,请注意确保你的编译器已经启用了 C++11 标准,以支持扩展的初始化列表。
阅读全文