| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6878 人关注过本帖
标题:编译错误:[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
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
vs2010 除了那个find 之外 还有一个sqrt重载不明确 之外 还有一个scanf不安全之外
 无其他编译问题

DO IT YOURSELF !
2018-12-29 15:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册: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
快速回复:编译错误:[Error] 'int' is not a class, struct, or union type
数据加载中...
 
   



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

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