StackOverflow 上的第二篇文章。我只是对我的程序为什么会这样运行有一些一般性的问题,我不需要帮助来完成它我周五刚刚缺课,显然我错过了很多。我的任务是设计一个包含 3 个 .cpp 和 2 个 .h 文件的程序,本质上它将使用冒泡排序、插入排序、选择排序方法以及顺序和二进制搜索来搜索和排序字符串数组。然后,我们应该对每种方法进行基准测试,以确定哪种方法最快。
我只是对为什么编译器一直对我大喊大叫感到困惑,这没有多大意义我已经坐在这里大约一个小时摆弄不同的选项或以不同的方式输入代码但无济于事。
我的头文件
const int NOT_FOUND = -1;
int sequentialSearch(string a[], string needle, int length );
约翰搜索.cpp
#include "JohnSearch.h"
#include <string>
int sequentialSearch(string copied[], string needle, int length)
{
int i; // iteration variable
// look at every element to see if it is the same as needle
for( i = 0; i < length; i++ )
if( copied[i] == needle )
return i;
return NOT_FOUND;
}
测试搜索.cpp
#include "JohnSearch.h"
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
/*
** printArray(title,a,length): print out title and then the contents of array a
*/
void printArray(string title, string ref[], int length )
{
int i; // array iteration
cout << title << ": \n";
for( i = 0; i < length; i++ )
cout<<setw(20)<<ref[i]<<"\n";
}
int main(void)
{
string reference[]={"John", "Allen", "Kevin", "Elisabeth"};
const int SZ=sizeof(reference)/sizeof(reference[0]);
string copied[SZ];
printArray("Reference", reference, SZ);
// sequential search (on unsorted array)
cout<<"Search.sequential(ref,Kevin):\t"<<sequentialSearch(reference, "Kevin", SZ)<<endl;
system("Pause");
return 0;
}
错误
johnsearch.h(2): error C2065: 'string' : undeclared identifier
johnsearch.h(2): error C2146: syntax error : missing ')' before identifier 'a'
johnsearch.h(2): error C2059: syntax error : ')'
testjohnsearch.cpp(28): error C3861: 'copyArray': identifier not found
testjohnsearch.cpp(31): error C2064: term does not evaluate to a function taking 3 arguments
johnsearch.h(2): error C2065: 'string' : undeclared identifier
johnsearch.h(2): error C2146: syntax error : missing ')' before identifier 'a'
johnsearch.h(2): error C2059: syntax error : ')'
johnsearch.cpp(7): error C2065: 'string' : undeclared identifier
johnsearch.cpp(7): error C2146: syntax error : missing ')' before identifier 'copied'
johnsearch.cpp(7): error C2374: 'sequentialSearch' : redefinition; multiple initialization
johnsearch.h(2) : see declaration of 'sequentialSearch'
johnsearch.cpp(7): error C2059: syntax error : ')'
johnsearch.cpp(8): error C2143: syntax error : missing ';' before '{'
johnsearch.cpp(8): error C2447: '{' : missing function header (old-style formal list?)
我显然在做一些完全和完全错误的事情。我需要 JohnSearch.cpp for JohnSearch.h 对吗?JohnSearch.h 中函数的前向声明是在 JohnSearch.cpp 中定义的,所以我需要这两个文件吗?
我真的很困惑。我们应该修改的示例程序有 2 个 .h 文件和 3 个 .cpp 文件。其中 2 个 .cpp 文件与 2 个 .h 文件相对应,所以我认为我还需要 2 个 .h 文件和 3 个 .cpp 文件。
字符串仍然未定义。