J'ai essayé d'utiliser l'operator[]
pour accéder à l'élément dans une map const
, mais cette méthode a échoué. J'ai également essayé d'utiliser at()
pour faire la même chose. Cette fois-ci, ça a marché. Cependant, je n'ai trouvé aucune référence sur l'utilisation de at()
pour accéder à un élément dans une map const
. Est-ce que at()
est une fonction nouvellement ajoutée dans map
? Où puis-je trouver plus d'informations à ce sujet? Merci beaucoup!
Un exemple pourrait être le suivant:
#include
#include
int main()
{
std::map A;
A[1] = 'b';
A[3] = 'c';
const std::map B = A;
std::cout << B.at(3) << std::endl; // ça marche
std::cout << B[3] << std::endl; // ça ne marche pas
}
Pour utiliser B[3]
, cela a retourné les erreurs suivantes lors de la compilation:
t01.cpp :14: error: passing ‘const std::map > >’ as ‘this’ argument of ‘_Tp& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key = int, _Tp = char, _Compare = std::less, _Alloc = std::allocator >]’ discards qualifiers
Le compilateur utilisé est g++ 4.2.1