标题:编译错误:[Error] 'int' is not a class, struct, or union type
只看楼主
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
结帖率:92%
已结贴  问题点数:20 回复次数:7 
编译错误:[Error] 'int' is not a class, struct, or union type
帮忙看一下这个代码为什么会给出这个编译错误:
165    53    D:\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\bits\stl_iterator_base_types.h    [Error] 'int' is not a class, struct, or union type
程序代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cctype>
#include<sstream>
#include<cmath>
#include<algorithm>
#include<queue>
#include<vector>
#include<set> 
#include<map>
#include<cassert>
#include<functional>
using namespace std;

int n,f[210];

struct node1{
    int x;
    int y;
}point[210];

struct node2{
    int p1;
    int p2;
    double length;
}edge[40005];

double distance(int i0,int j0){
    double ans;
    ans=sqrt((point[i0].x-point[j0].x)*(point[i0].x-point[j0].x)+(point[i0].y-point[j0].y)*(point[i0].y-point[j0].y));
    return ans;
}

int find(int number){
    if(f[number]==number) return number;
    return f[number]=find(f[number]);
}

void join(int n1,int n2){
    if(find(n1)!=find(n2)){
        f[n1]=f[n2];
    }
}

bool cmp(node2 e1,node2 e2){
    return e1.length<e2.length;
}

int main(void){
   int i,j,k,cas=0;
   double ans;
   while(scanf("%d",&n)!=EOF && n){
       k=1;
       for(i=1;i<=n;i++){
           scanf("%d %d",&point[i].x,&point[i].y);
           for(j=1;j<i;j++){
               edge[k].p1=i;
               edge[k].p2=j;
               edge[k].length=distance(i,j);
           }
       }
       getchar();
       sort(edge+1,edge+k,cmp);
       for(i=1;i<=n;i++) f[i]=i;
       for(i=1;i<k;i++){
           join(edge[i].p1,edge[i].p2);
           ans=edge[i].length;
           if(find[1]==find[2]) break;
       }
       cas++;
       printf("Scenario #%d\n",cas);
       printf("Frog Distance = %.3f\n\n",ans);
   }
   return 0;
}


搜索更多相关主题的帖子: int include point edge find 
2018-12-28 23:22
莱茵瓶
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:32
专家分:103
注 册:2018-10-30
得分:3 
std 命名空间的问题?看不懂呀,是要实现什么功能,输入和输出
我把if(find[1]==find[2]) break;改成if(find(1)==find(2)) break;就可以了,不知道是不是这个问题
2018-12-29 09:08
豆豆的滴
Rank: 9Rank: 9Rank: 9
来 自:湖南
等 级:贵宾
威 望:33
帖 子:368
专家分:1087
注 册:2018-5-7
得分:3 
find是个函数吧
2018-12-29 11:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:3 
先把 if(find[1]==find[2]) break;
改为 if(find(1)==find(2)) break;
如果还不能编译通过,那么一步一步的来,比如删掉所有代码,只留下空代码试试
程序代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cctype>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <set>
#include <map>
#include <cassert>
#include <functional>
using namespace std;

int main( void )
{
}

2018-12-29 11:56
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
得分:0 
改成了find(1)==find(2),还是有这个错误。
我试了一下,如果把这一段代码删掉就没有这个问题了,但不知道这一段该怎么改?
程序代码:
for(i=1;i<=n;i++){
           scanf("%d %d",&point[i].x,&point[i].y);
           for(j=1;j<i;j++){
               edge[k].p1=i;
               edge[k].p2=j;
               edge[k].length=distance(i,j);
           }
       } 


[此贴子已经被作者于2018-12-29 12:49编辑过]

2018-12-29 12:48
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:3 
vs2010 除了那个find 之外 还有一个sqrt重载不明确 之外 还有一个scanf不安全之外
 无其他编译问题

DO IT YOURSELF !
2018-12-29 15:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:8 
以下是引用青蝶在2018-12-29 12:48:01的发言:

改成了find(1)==find(2),还是有这个错误。
我试了一下,如果把这一段代码删掉就没有这个问题了,但不知道这一段该怎么改?
for(i=1;i<=n;i++){
           scanf("%d %d",&point.x,&point.y);
           for(j=1;j
1。最好升级你的gcc4.9.2古董,目前是8.1.0了。(下载地址:https://)
2。如果你不愿意升级,那么将 distance(i,j) 改为 ::distance(i,j) 试试。
2018-12-29 15:38
青蝶
Rank: 2
等 级:论坛游民
帖 子:160
专家分:51
注 册:2018-2-4
得分:0 
回复 7楼 rjsp
谢谢大佬,或者改一下函数名就好了,想问一下为什么?
2018-12-29 17:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492367-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.326680 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved