J'apprends Lipmann et j'étudie seulement. J'essaye ici d'écrire un code qui retournera un élément minimal dans un vecteur. Lorsque je compile mon code dans Codeblocks, il dit: "Une déclaration de modèle ne peut pas apparaître à la portée du bloc". Voici le code:Une déclaration de modèle ne peut pas apparaître à la portée du bloc
#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;
}
En fait, vous pouvez simplement utiliser 'std :: min_element'. –
Je pense que le point ici est que OP essayait de comprendre comment implémenter un modèle de fonction comme ça. – SU3