我目前正在学习自己的C ++,并且我很难获得正确的函数参数。
问题和截图是:
到目前为止我的代码是:
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
我会尝试提供更多信息来帮助每个人。
答案 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