मैं एक वेक्टर को एक फ़ंक्शन के तर्क के रूप में भेजने की कोशिश कर रहा हूं और मैं यह पता नहीं लगा सकता हूं कि यह कैसे काम करता है। विभिन्न तरीकों का एक समूह बनाने की कोशिश की, लेकिन वे सभी अलग-अलग त्रुटि संदेश देते हैं। मैं केवल कोड का हिस्सा शामिल करता हूं, क्योंकि यह केवल वह हिस्सा है जो काम नहीं करता है। (वेक्टर "यादृच्छिक" यादृच्छिक, लेकिन क्रमबद्ध, 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);
}