Salut,
Entre ce que  tu dis et les constructeur que cette page indique, j'ai l'impression que le conteneur par défaut de la classe tokenizer semble être plus proche d'une liste chainée (std:: list 
) que d'un tableau.
En tout cas, le fait que tu ne puisse pas "simplement" utiliser begin+ XXX semble montrer qu'il ne s'agit pas d'un (équivalent à un)  itérateur à accès aléatoire, mais plus surement d'un (équivalent à un) itérateur à accès séquentiel (bi directionnel, ou non).
Je vois dés lors deux possibilités:
Soit tu utilises std:: advance sous une forme proche de
	
	my_tok::const_iterator i = std::advance(tok.begin(),50);
  mais le résultat (en terme de performances) sera identique à ta boucle,
Soit tu utilise le constructeur de tokenizer qui te permet de spécifier le type du conteneur, sous une forme qui devrait etre proche de
	
	boost::tokenizer<std::vector<std::string> > tok(std::vector<std::string>>() )
 (syntaxe à confirmer 
 )
et qui fera en sorte que le (const_)iterator corresponde à un (const_)iterator sur un std::vector, apportant ainsi la possibilité de profiter des accès aléatoires 
						
					
Partager