IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

problème de reconnaissance de fonction template


Sujet :

Langage C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Points : 30
    Points
    30
    Par défaut problème de reconnaissance de fonction template
    Bonjour j'ai écrit le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    #include <cmath>
    #include <string>
    #include <fstream>
    #include <iostream>
    #include <sstream>
    #include <vector>
     
    template<template<typename> class T, typename U>
    unsigned int find(const T<U>& v){
      U max = v[0];
      int indice = 0;
      for(int i=1;i<v.size();++i){
        if(v[i]>max){
          max = v[i];
          indice = i;
        }
      }
      return indice;
    }
     
    int main(int argc,char **argv){
     
     vector<int> vv(0); vv.push_back(0); vv.push_back(0);
      find(vv);
     
    return 0;
    }
    et j'ai l'erreur suivante à la compliation
    no matching function for call to find(std::vector<int, std::allocator<int> >&)

    Pouvez-vous m'aider ?

    Je vous remercie par avance,

    bou

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Points : 858
    Points
    858
    Par défaut
    Normal, std::vector a 2 paramètres templates.
    Mais tu peux utiliser value_type, tous les container standard définissent ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    template<class T>
    unsigned int find(const T& v){
    typename T::value_type max = v[0];
    ...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Points : 30
    Points
    30
    Par défaut Merci
    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/09/2014, 12h51
  2. Problème de l'héritage d'une fonction template
    Par r0d dans le forum Langage
    Réponses: 18
    Dernier message: 15/07/2014, 14h37
  3. Problème fonction template
    Par scheme dans le forum C++
    Réponses: 11
    Dernier message: 27/09/2010, 19h29
  4. Problème de spécialisation de fonction template membre
    Par Davidbrcz dans le forum Langage
    Réponses: 4
    Dernier message: 29/12/2007, 21h01
  5. Problème de spécialisation de fonction membres template
    Par ludovic.barrillie dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2007, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo