が(この順序で)パラメータとして以下に取るのfindと呼ばれる機能を実装します この関数は、配列内で指定された要素を調べ、要素のインデックス位置を返す必要があります。要素が存在しない場合、関数は-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;
}
私はテンプレートなしで、メイン使ってint型にこのコードを実行し、それが完璧に動作します。私は実際に自分のコードに何が間違っているのか困惑しています。
[mcve]を投稿してください。また、1)なぜあなたは '-1'を返すのですか?探しているタイプが 'std :: string'の場合はどうなりますか?その '-1'の戻り値はコンパイルされません。 2)なぜnew []を使っているのですか? – PaulMcKenzie
追加するには、[std :: find](http://en.cppreference.com/w/cpp/algorithm/find)が既にこれを行います。 – PaulMcKenzie
関数 't'の戻り値の型を' int'に変更しました。オブジェクトが配列内にある場合はインデックスを返すと仮定します。そうでない場合は、オブジェクトが配列内にない場合は-1を返すと仮定します。 – hicu0