【问题标题】:My C++ function gives unusual error, regarding declaration我的 C++ 函数给出了关于声明的异常错误
【发布时间】:2020-08-24 14:54:38
【问题描述】:
#include <bits/stdc++.h>
using namespace std;

void union(int x, int y, int link[], int size[])
{
    int a = find(x, link); int b = find(y, link);
    if (size[a] < size[b])
        swap(a,b);
    if ( a != b)
    {
        size[a] += size[b];
        link[b] = link[a];
    }
}


int main()
{
    cout<<"Hello World";

    return 0;
}

我就是想不通我到底做错了什么。我检查了多次,但无济于事。这可能是非常愚蠢的事情。它不断给出以下错误。

file.cpp:19:11: error: expected identifier before '(' token
void union(int x, int y, int link[], int size[])
        ^
file.cpp:19:12: error: expected unqualified-id before 'int'
void union(int x, int y, int link[], int size[])
            ^~~
file.cpp:19:12: error: expected ')'
before 'int'

【问题讨论】:

  • #include &lt;bits/stdc++.h&gt;using namespace std; 是一个相当有害的组合,因为 (a) 它是不可移植的,并且 (b) 它将整个 C++ 运行时库拉入全局命名空间,有进一步冲突的风险.

标签: c++ disjoint-sets disjoint-union


【解决方案1】:

union 是 C++ 中的保留关键字,因此不能将其用作函数名。将其重命名为其他名称,例如 union_。这将解决您的问题。

【讨论】:

  • 谢谢。。我是新手,没有使用 IDE,所以无法自己弄清楚。
  • @AnantAgarwal 没问题
猜你喜欢
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 2016-02-01
  • 2017-04-10
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多