Linux下pipe()未包含头文件却提示重名问题-问答-阿里云开发者社区-阿里云

开发者社区> 云栖技术> 正文

Linux下pipe()未包含头文件却提示重名问题

2016-06-03 00:42:46 1766 1

(C++)在Windows下可以正常工作的程序,在Linux下无法编译,提示类型未声明。但在此之前我已经声明了名为“pipe”的类,并且添加了构造器。经过查询得知pipe重名,但并未包含有“pipe”的头文件。请问各位大神能否给我一个解释?我的教练拒绝回答我。理由是他不喜欢C++!

#include <fstream>
#include <cstdlib>
using namespace std;
ifstream cin("bird.in");
ofstream cout("bird.out");
struct pipe
{
    int P;
    int L;
    int H;
    pipe(){P = L = H = -1;}
};

int up[10004] = {0},down[10004] = {0},n,m,k;
int nowx = 0,nowy = 0;
int point = 0;
int min_p = 50000;
int max_pipe = 0;
int cross = 0;
pipe Pi[10004];

int fly()           //检查下一位置可否飞越 
{
    if(nowx==n&&nowy>0)     //返回递归调用(到达终点) 
    {
        if(min_p>point) min_p = point;
        return 1;
    }
    int i;
    bool out = false;
    bool is_find = false;
    int back = 0;
    for(i = 1;!out;i++)         //点击 
    {
        nowy = nowy + up[nowx] * i;
        nowx++;
        point += i;
        if(nowy>=m) back = nowy - m,nowy = m,out = true;
        if(Pi[nowx].P != -1)   //下一个位置上有管道
        {
            if(Pi[nowx].L>=nowy||Pi[nowx].H<=nowy) //当前点击次数无法飞越
            {
                if(max_pipe<cross) max_pipe = cross;
                if(!out)
                { 
                    nowx--;                 //回溯 
                    nowy -= up[nowx] * i;   //回溯 
                }
                else
                {
                    nowx--;
                    nowy = nowy + back;
                    nowy = nowy - up[nowx] * i;
                }
                point -= i;             //回溯
                continue;      //下一次循环 
            } 
            else
            {
                cross++;
                int r = fly();    //检查下一位置
                if(r==1) is_find = true;
                cross--;
            }
        }

        else                     //下一个位置上无管道
        {
            int r = fly();       //检查下一位置 
            if(r==1) is_find = true;   //可以飞越 
            if(!out)
            { 
                nowx--;                 //回溯 
                nowy -= up[nowx] * i;   //回溯 
            }
            else
            {
                nowx--;
                nowy = nowy + back;
                nowy = nowy - up[nowx] * i;
            }
            point -= i;             //回溯
        }
    }

    nowy = nowy - down[nowx];              //不点击 
    if(nowy<=0)
    {
        nowy += down[nowx];
        if(is_find) return 1;
        return 0;
    }
    nowx++;
    if(Pi[nowx].P != -1)   //下一个位置上有管道
    {
        if(Pi[nowx].L>=nowy||Pi[nowx].H<=nowy) //下落无法飞越
        {
            if(max_pipe<cross) max_pipe = cross;
        } 
        else          
        {
            cross++;
            int r = fly();    //检查下一位置
            if(r==1) is_find = true;
            cross--;
        }
    }

    else                     //下一个位置上无管道
    {
        int r = fly();       //检查下一位置 
        if(r==1) is_find = true;   //可以飞越 
    }
    nowx--;
    nowy = nowy + down[nowx];
    if(is_find) return 1;
    return 0;
}

int main()
{
    int i;

    cin >> n >> m >> k;
    for(i = 0;i < n;i++)
        cin >> up[i] >> down[i];
    for(i = 0;i < k;i++)
    {
        int temp;
        cin >> temp;
        cin >> Pi[temp].L >> Pi[temp].H;
        Pi[temp].P = 1;
    }

    int ans = 0,temp = 0;
    for(i = 1;i <= m;i++)
    {
        nowx = 0;
        nowy = i;
        point = 0;
        temp = fly();
        if(temp == 1) ans = 1;
    }
    if(ans==0) cout << 0 << endl << max_pipe;
    else cout << 1 << endl << min_p;
    cin.close();
    cout.close();
    return 0;
取消 提交回答
全部回答(1)
  • 云栖技术
    2019-07-17 19:25:43

    pipe()是linux下面的一个函数,我猜是因为你用了pipe这个结构体导致名字重复了。

    建议将你的pipe结构体的名字改掉成其它的。

    0 0
相关问答

40

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 144271浏览量 回答数 40

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222986浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157077浏览量 回答数 145

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643113浏览量 回答数 18

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 277523浏览量 回答数 33

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256863浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431609浏览量 回答数 294

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302597浏览量 回答数 249

40

回答

阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

梦丫头 2014-07-29 20:51:49 162089浏览量 回答数 40

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471391浏览量 回答数 24
+关注
云栖技术
社区爱好者,专为云栖社区服务!
33
文章
898
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载