Partage
  • Partager sur Facebook
  • Partager sur Twitter

std::unordered_map::operator[] const ?

Sujet résolu
    15 novembre 2018 à 18:03:12

    Salut,

    Je viens de remarquer que contrairement à std::vector, il n'y a pas de surcharge "const" à l'opérateur [] de std::unordered_map du genre :

    const value_type& operator[](key_type const&) const {
      // ...
    }

    C'est peut-être bête de ma part mais je me demandais pourquoi, quelqu'un a-t-il une réponse ?

    Merci !

    • Partager sur Facebook
    • Partager sur Twitter
      15 novembre 2018 à 18:07:42

      Salut.

      C'est parce que cette fonction fait une insertion si l'élément n'existe pas.

      • Partager sur Facebook
      • Partager sur Twitter
      Pony : Un langage à acteurs sûr et performant
        15 novembre 2018 à 18:15:25

        Seems logical en effet. Par contre at() semble avoir les deux versions, je vais donc utiliser ça. (même si bon, at...)

        mapped_type& at(const key_type& _Keyval);
        const mapped_type& at(const key_type& _Keyval) const;

        Enfin bref, merci !

        -
        Edité par Emrak 15 novembre 2018 à 18:18:08

        • Partager sur Facebook
        • Partager sur Twitter

        std::unordered_map::operator[] const ?

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown