2012-04-14 74 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