作业:C ++函数的参数

时间:2016-09-14 14:21:34

标签: c++ vector

我目前正在学习自己的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部分的任何帮助。谢谢!

感谢帮帮!我理解标准库&#34; std :: vector&#34;可能与斯坦福大学的图书馆不同,#34; Vector&#34;资本&#34; V&#34;:

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

我会尝试提供更多信息来帮助每个人。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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

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

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

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

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

  • 矢量函数“insert”

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

答案 2 :(得分:-2)

您可能没有正确地为Vector分配值。这可以帮助你一点。 https://stackoverflow.com/a/3424937/1606281