vs2010 提示数组名不明确????
本帖最后由 guodongxiaren 于 2013-07-31 10:21:18 编辑
#include <iostream>
#include <string>
using namespace std;
const int MAX=1000005;
int next[MAX];
void GetNext(string t)
{
int i=0;
int j=-1;
while(i<t.length())
if(j==-1||t[i]==t[j])
{
++i;
++j;
next[i]=j;
}
else
j=next[j];
}
用vs2010写个kmp的算法。next数组我声明的的全局,为什么在函数中提示那两个next数组不明确??? Visual?Studio?2010
[解决办法]
改为 #define MAX 1000005也是不行的,
变量名规则你没弄清楚,
你若是定义next1[MAX]就没有问题。
next 不能作为变量名。
[解决办法]
C++中变量名规则 需要再研究下的,像next之类的,C++本身有这样的操作,当然不能用于定义变量名。 你若定义了,它就不知是那个了。因此我们若是要定义类似的往往要改变其大小写,或者加前后缀。
[解决办法]
弱弱的问句,这个next是c++在什么地方定义的? 试了下,确实可以啊。请问这是怎么回事啊
改为 #define MAX 1000005也是不行的,
变量名规则你没弄清楚,
你若是定义next1[MAX]就没有问题。
next 不能作为变量名。
next[i],转定义看看,应该会有。