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

C++ Discussion :

faire un tableau avec des dates et valeurs correspondantes


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juillet 2014
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Par d�faut faire un tableau avec des dates et valeurs correspondantes
    edit : je pensais poster sur le forum d�butant. Je ne sais comment migrer mon message vers c++->d�butant. D�sol� pour la pollution :/

    Bonjour � tous,

    Je t�tonne sur c++ depuis quelques semaines et j'avoue qu'il est assez gratifiant de progresser petit a petit avec des buts simples.
    Jusqu'� pr�sent je me suis servis de divers tutoriaux sur le net qui m'ont permit d'avancer. Mais l�, j'avoue s�cher sur mes recherches d'infos et j'en viens donc a poser ma question sur ce Forum.
    Je cherche la ou les mani�res de travailler avec un tableau de valeurs du type :
    2010 => 4.5,
    2011 => 4.2,
    2012 => 3.8,
    2013 => 3.4,
    2014 => 3.1
    bref un tableau avec des ann�es et leurs valeurs correspondantes, sachant que ces valeurs doivent �tre renseign�s par l'utilisateur du programme minimaliste que je me suis donn� comme objectif pour mon apprentissage.
    J'ai beau fouiller google aucune piste m'a saut� aux yeux.
    en PHP par exemple j'aurais fait
    $tableau = array(2010=>4.5, 2011 => 4.2);
    et pour ajouter une valeur � mon tableau j'aurais fait $tableau[2014] = 3.1;
    En C++ je ne vois pas vraiment quel serait la proc�dure. Vers quoi orienter mes recherches ?
    Merci pour vos �ventuels conseils.

  2. #2
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Il s'agit d'un dictionnaire, reliant des entr�es � leur d�finition/valeur.
    Le nom classique est map.

    En C++, c'est std::map<Cl�, Valeur>, si tu veux un tri sur les cl�s (un arbre ordonn�), et std::unordered_map<Cl�, Valeur> pour la table de hashage (hash table).

    Dans ton cas, je prendrais str::map<int, float> ou str::map<int, double>.

    Je t'invite � jeter un �il �:

  3. #3
    Candidat au Club
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juillet 2014
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2
    Par d�faut
    Je vais explorer �a de ce pas. Merci beaucoup d'avoir prit le temps de me r�pondre

  4. #4
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    il y a trois possibilit�s pratiques:
    En profitant du C++11
    Code c++11 : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include<map>
    int main() {
        std::map<int, double> values = {
            {2010, 3.5},
            {2011, 7.4},
            {2012, 2.6},
        }
     
        //en faire quelque chose;
     
        return 0;
    }

    � l'ancienne: cas g�n�ral
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <map>
    #include<utility>
    int main() {
        std::map<int, double> values;
        values.insert(std::make_pair(2010, 3.5));
        values.insert(std::make_pair(2011, 7.4));
        values.insert(std::make_pair(2012, 2.6));
     
        //en faire quelque chose;
     
        return 0;
    }
    � l'ancienne: cas o� les valeurs ont une s�mantique de valeur et un constructeur par d�faut. (les entiers par exemple).
    Il faut bien comprendre qu'il y a des valeurs temporaires qui sont cr�es puis modifi�es avec la valeur indiqu�e.
    C'est potentiellement couteux, voire impossible.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include<map>
    int main() {
        std::map<int, double> values;
        values[2010]=3.5;
        values[2011]=7.4;
        values[2012]=2.6;
     
        //en faire quelque chose;
     
        return 0;
    }
    edit: pas #import, mais #include, merci r0d

  5. #5
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Tu es s�r pour #import?
    Je ne suis pas au courant de toutes les �volutions du c++11 et c++14, mais je n'ai jamais vu �a que pour des libs (pas pour des en-t�tes), et que sous Windows.

  6. #6
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    houla, non. C'est bien#include.

    Je code en java en m�me temps, c'est un peu gal�re...

  7. #7
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Mode HS

    @leternel, il y a au moins 1 autre solution

    Et je la donne juste pour vous faire grincer les dents
    Parce qu'elle est statique (*) et niveau performances (taille tableau ou vitesse) elle doit p�cher quelque part

    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
    enum {
         year_1 = 2010,
         year_2
    } ALL_YEARS;
     
     
    int main() {
        float values[] = {
            [year_1] = 4.5f,
            [year_2] = 4.2f,
            [2012] = 3.8f,
            [2013] = 3.4f,
            [2014] = 3.1f
        };
     
        printf("%d -> %.1f\n%d -> %.1f", year_1, values[year_1], 2012, values[2012]);
     
        return 0;
    }
    * -> Apr�s on peut tricher si on a un intervalle d'ann�es pas tr�s large, et/ ou pr�voir "une roue de secours"

  8. #8
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Et ca compile ca?

    parce que j'ai bien pens� au Cisme suivant (index d�call�):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    template <Type, int N>
    class shiftarray{
        int shift;
        Type values[N];
    public:
        explicit shiftarray(int shift) : shift(shift) {}
     
        int base() const {return shift;}
        Type& operator[](int i) {
            if (i<shift || i>=shift+N) throw std::out_of_range();
            return values[i-shift];
        }
    };

  9. #9
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    N'oublions pas la question qui est pos�e, et notamment:
    Citation Envoy� par MrBidule Voir le message
    bref un tableau avec des ann�es et leurs valeurs correspondantes, sachant que ces valeurs doivent �tre renseign�s par l'utilisateur
    Donc, la map ne sera pas initialis�e "en dur".

  10. #10
    Expert �minent

    Femme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par d�faut
    Donc une map avec insert, ou emplace.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. g�n�rer tableau avec des dates en abcisses
    Par boonichou30 dans le forum Excel
    R�ponses: 4
    Dernier message: 09/01/2013, 22h15
  2. Faire un tableau avec des divs
    Par identifiant_bidon dans le forum Mise en page CSS
    R�ponses: 5
    Dernier message: 31/12/2012, 18h15
  3. Faire un tableau avec des div
    Par identifiant_bidon dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 1
    Dernier message: 29/12/2012, 11h31
  4. Comment faire un graphique avec des dates
    Par T-MAT dans le forum MATLAB
    R�ponses: 3
    Dernier message: 03/01/2009, 10h35
  5. R�ponses: 5
    Dernier message: 26/08/2006, 12h14

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