2016-09-14 49 views
-1

我目前正在学习C++,并且面临着难以使我的函数的参数正确。作业:用于C++函数的参数

的问题,我的截图:

My Screenshot

到目前为止我的代码是:

int countInRange(Vector<int> array, int min, int max){ 
    /* 
     Actual code goes here...... 
    */ 
    return 0; 
} 

现在的编译器不接受Vector<int> array,并引发了我这个错误:

no match for 'operator=' (operand types are 'Vector<int>' and '<brace-enclosed initializer list>') param0 = {28, 1, 17, 4, 41, 9, 59, 8, 31, 30, 25};

我知道这个问题是使用斯坦福标准库,但我不认为这是主要问题。

我将不胜感激修复Vector<int> array部分的任何帮助。谢谢!

感谢您的帮助!据我所知,标准库“的std ::载体”可能是从斯坦福大学的图书馆“载体”不同的资本“V”:

http://stanford.edu/~stepp/cppdoc/Vector-class.html

我会尽量提供更多的信息对大家有帮助。

+2

如果来自'std',Vector'应该是'vector'(所有小写字母) –

+3

您能显示param0的声明吗?我猜这是一个矢量,因此你试图分配的任务是无效的。 – audio

+1

欢迎来到堆栈溢出。请发布[MCVE](http://stackoverflow.com/help/mcve)。 –

回答

3

“主要问题”是使用斯坦福标准库,它没有为模板类Vector定义初始化程序列表的构造函数。

使用可能是std::vector,它有一个初始化列表的构造函数。

0

由于这是一项家庭作业,我不会为你做这项工作,但我会给你一些指导。我相信你明白了;在一天结束时,你需要了解你最终会提供什么。

您的编译器错误告诉您的是,您无法以您尝试将数字放入其中的方式初始化您的Stanford Vector实例;这种方式是不可能的,你必须以另一种方式来做。所以,

param0 = {28, 1, 17, 4, 41, 9, 59, 8, 31, 30, 25}; //not possible 

因此,您将不得不使用其他方法来添加到斯坦福向量。你可以调查:

  • 向量函数 “add” 和 “的push_back”

  • 矢量动初始化方法vector<t> name(values)

  • 向量函数 “插入”

或者,正如其他人所建议的那样,您可以切换到std :: vector而不是Stanford Vector。但是,请确保符合您的任务要求