2016-09-14 87 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。但是,請確保符合您的任務要求