2012-04-14 84 views
0

的程序必須找到一個元素排序後的數組和實現這個函數模板:STL算法函數模板

bool find(T *p, T value, int &index=null) 

我已經完成了一部分,但是當我嘗試做空部分的所有我的電話號碼去爲零。另外我不知道如何實現索引。有人能幫助我嗎。

int main() 
{ 
    vector<int> numbers; 
    vector<int>::iterator iter; 

    for (int x = 0; x < 15; x++) 
     numbers.push_back(x); 

    cout << "The numbers in the vector are:\n"; 
    for (iter = numbers.begin(); iter != numbers.end(); iter++) 
     cout << *iter << " "; 
    cout << endl << endl; 

    iter = find(numbers.begin(), numbers.end(), 5); 
    cout << *iter << endl; 
+9

您不能有空引用。如果你需要這樣的東西使用指針。 – Dani 2012-04-14 23:13:08

+1

你的函數模板只給出一個指針,並且沒有指出該地址有多少個元素。這將如何工作? – Blastfurnace 2012-04-14 23:15:41

+1

只需使用內置的'lower_bound()'算法。 – 2012-04-14 23:31:36

回答

0

原型是

bool find(T *p, T value, int &index=null). 

函數調用

iter = find(numbers.begin(), numbers.end(), 5); 

概念,做這些的比賽? end()是否會返回一個值? 5是一個索引嗎?

+0

另外,您不能將非常量引用綁定到文字。我猜這裏的'find'是'std :: find',但顯然這不是OP想要的。 – Philipp 2012-04-15 00:46:32