私はLipmannを学んでおり、私は勉強しています。私はここでベクトルの最小要素を返すコードを書くことを試みています。 Codeblocksでコードをコンパイルすると、「テンプレートの宣言はブロックスコープには表示されません」と表示されます。ここでは、コードです:あなたが関数内のテンプレートを定義することはできませんテンプレートの宣言はブロックスコープには表示されません
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
template <class elemType>
elemType save;
elemType min (const std::vector<elemType> &vec) {
std::vector<elemType>::iterator it = vec.begin(), end_it = vec.end();
std::vector<elemType>::iterator iter = std::next(it, 1);
for (; it != end_it; it++) {
if (*it < *(it + 1)) {
save = *it;
}
if (save < *it) {
save = *it;
}
}
};
int massiv[10] = {35, 66, 98, 15, 32, 41, 24, 90, 55, 100};
std::vector<int> vec_train(massiv,massiv+10);
min(vec_train);
return 0;
}
実際には、単に 'std :: min_element'を使うことができます。 –
ここでのポイントは、OPがそのような関数テンプレートを実装する方法を理解しようとしていたことです。 – SU3