我想發送一個向量作爲參數的函數,我不知道如何使它工作。嘗試了一堆不同的方式,但他們都給出了不同的錯誤信息。 我只包含部分代碼,因爲只有這部分不起作用。 (矢量 「隨機」 填充有隨機的,但排序,值0和200之間)如何將矢量傳遞給函數?
更新的代碼:所述&
通知
#include <iostream>
#include <ctime>
#include <algorithm>
#include <vector>
using namespace std;
int binarySearch(int first, int last, int search4, vector<int>& random);
int main()
{
vector<int> random(100);
int search4, found;
int first = 0;
int last = 99;
found = binarySearch(first, last, search4, random);
system("pause");
return(0);
}
int binarySearch(int first, int last, int search4, vector<int>& random)
{
do
{
int mid = (first + last)/2;
if (search4 > random[mid])
first = mid + 1;
else if (search4 < random[mid])
last = mid - 1;
else
return mid;
} while (first <= last);
return -(first + 1);
}
你說的不工作呢?請發佈錯誤。 – 2011-03-16 23:38:47
關於更新代碼:參數第一個和最後一個是來自向量的**值**,而不是索引。你也從來沒有設置一個值來搜索(search4)! – 2011-03-17 10:32:52
使用'using namespace std;'是個好主意。 [爲什麼?](http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice) – Tomask 2015-12-28 13:35:26