【发布时间】:2019-04-13 14:40:57
【问题描述】:
我在同一个项目中有两个文件,分别是f1.cpp和f2.cpp,用于解决算法中的同一个问题“连接问题”。在 Visual Studio 中,我将它们放入源文件中。源文件中的另一个文件是 pch.cpp。项目名称也是f1。
f1.cpp的代码是,
#include "pch.h"
#include <iostream>
using namespace std;
static const int N = 10000;
int main()
{
int i, p, q, id[N];
for (i = 0; i < N; i++) id[i] = i;
while (cin >> p >> q) {
int t = id[p];
if (t == id[q]) continue;
for (i = 0; i < N; i++)
// this is for union
if (id[i] == t) id[i] = id[q];
cout << " " << p << " " << q << endl;
}
std::cout << "Hello World!\n";
return 0;
}
f2.cpp 是,
#include <iostream>
#include "pch.h"
using namespace std;
static const int N = 10000;
int main() {
int i, j, p, q, id[N], sz[N];
for (i = 0; i < N; i++) { id[i] = i, sz[i] = 1; }
while (cin >> p >> q) {
for (i = p; i != id[i]; i = id[i]);
for (j = q; j != id[j]; j = id[j]);
if (i == j) continue;
if (sz[i] < sz[j]) {
id[i] = j; sz[j] += sz[i];
}
else {
id[j] = i; sz[i] += sz[j];
}
cout << " " << p << " " << q << endl;
}
}
虽然我很确定这两个代码,如果独立运行,是没有错误的。但是由于它们一起出现在源文件中,当我运行 f2.cpp 时,会出现错误,因为
C2065 'cin':未声明的标识符连接问题
C2065 'cout':未声明的标识符连接问题
C2065 'endl':未声明的标识符连接问题
My question is why the error like this happens ?
Do I have to open a new project in visual studio for editing different solutions on same problems ?
【问题讨论】:
-
如果你一起运行它们,链接器会产生两个
main()方法,这会导致编译器错误,因为你只能有一个main()... -
我可以在同一个项目中分别运行它们吗?
-
删除文件...所以我需要打开一个新项目来单独运行它们?
-
@exteralvictor si,先生!
-
@exteralvictor 或者你只需要在你的代码中使用定义......
标签: c++ visual-studio