Реализовать функцию под названием находку, которая принимает в качестве параметров (в указанном порядке):Templated Линейный поиск
Объект мы хотим найти в массиве динамический массив любого типа Размер массива Эта функция должна выглядеть внутри массива для указанного элемента и возвращать позицию индекса элемента. Если элемент не существует, функция должна возвращать -1.
Код, который у меня есть:
template<typename t>
t find(t objectInArray, t *array, int arraySize)
{
array = new t[arraySize];
for(int index = 0; index < arraySize; index++){
if(array[index] == objectInArray){
cout << index;
return index;
}
}
return -1;
}
Я побежал этот код в главном, используя междунар без шаблона, и он работает отлично. Я действительно озадачен тем, что не так с моим кодом.
Пожалуйста, отправьте сообщение [mcve]. Кроме того, 1) почему вы возвращаете '-1'? Что, если тип, который вы ищете, это 'std :: string'? Это возвращаемое значение '-1' не будет компилироваться. 2) почему вы используете 'new []', тем самым создавая утечку памяти? – PaulMcKenzie
Чтобы добавить, [std :: find] (http://en.cppreference.com/w/cpp/algorithm/find) делает это уже для вас. – PaulMcKenzie
Я изменил свой возвращаемый тип функции 't' на' int'. Я должен возвращать индекс, если объект находится в массиве, иначе я должен возвращать -1, если объект не находится в массиве. – hicu0