c ++错误:在'距离'之前预期','或'...'

时间:2014-10-28 04:38:35

标签: c++ compiler-errors

我在下面代码的第一行收到错误。错误是

error: expected ‘,’ or ‘...’ before ‘distances’

我不知道它实际上是什么问题。我正在使用ideone,如果这有帮助,但我不认为这会导致问题。

vector<string> Most(bitset<4> treasure, int distance, string path, int p, int[] distances, string[] paths){
    for(int i = 1; i<4; i++){
        if(100>=distances[p*4+1+i]+distances[i*5+1]){
            Most(treasure, distance+distances[p*4+1+i], path.append(paths[p*4+1+i]),i, distances, paths);
        }
   }
    vector<string> test;
    return test;
}

2 个答案:

答案 0 :(得分:1)

更改这些参数声明

int[] distances, string[] paths

int distances[], string paths[]

您使用的语法在C#中不在C ++中有效。

您确定该功能有效吗?它总是返回一个空向量。并且考虑到用作参数路径的原始对象不会被更改,因为它是通过值传递给函数

答案 1 :(得分:0)

这编译..虽然我不确定它应该做什么:

#include <vector>
#include <string>
#include <bitset>

using namespace std;

// I modified the function signature from "string[] paths" to "string* paths",
// the same for `int[] distances`
vector<string> Most(bitset<4> treasure, int distance, string path, int p, int* distances, string* paths)
{
    for(int i = 1; i<4; i++){
        if(100>=distances[p*4+1+i]+distances[i*5+1]){
            Most(treasure, distance+distances[p*4+1+i], path.append(paths[p*4+1+i]),i, distances, paths);
        }
    }
    vector<string> test;
    return test;
}

// it is better if you post runnable code
int main() {

}

如果您仍有问题,请尝试将代码修改为最小,但可以运行。 ;)