Comme suit :
template <class I>
struct iterator_traits
{
typedef typename I::value_type value_type;
}
//针对指向常数对象的指针的特例化
template <class T>
struct iterator_traits<const T*>
{
typedef T value_type;
}
Ici, je pense obtenir le value_type lié à l'itérateur. Pourquoi convertir const int en int ? Ce que nous voulons obtenir, ce sont des informations de type. Bien que la variable obtenue (variable de ce type) ne puisse pas être modifiée, pourquoi est-elle dite inutile (dit dans le livre d'analyse du code source stl)
J'espère que vous pourrez m'aider à expliquer ce qui précède. Merci.
Ça y est, le but des traits (extraction) est d'obtenir statiquement certaines caractéristiques inhérentes à l'objet au moment de la compilation
Je ne comprends pas très bien ce que vous voulez exprimer. Vous avez dit « Pourquoi convertir const int en int » En fait, const est défini par ce qui suit