【发布时间】:2012-04-14 23:06:27
【问题描述】:
程序必须在有序数组中找到一个元素并实现这个函数模板:
bool find(T *p, T value, int &index=null)
我已经完成了一个部分,但是当我尝试执行 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;
【问题讨论】:
-
你不能有一个空引用。如果您需要类似的东西,请使用指针。
-
您的函数模板仅提供一个指针,并没有指示该地址有多少元素。这将如何运作?
-
使用内置的
lower_bound()算法即可。 -
使用C++时不要使用null;使用 0。这不是解决方案,只是一个建议。