2015-12-15 3 views
1

Si deux itérateurs vectoriels iit et min traversent le même vector<string>, comment puis-je comparer les valeurs de chaîne aux emplacements où se trouvent les pointeurs? Je veux être en mesure de le faire:C++; comment comparer les valeurs de chaîne de différents itérateurs traversant le même vecteur de chaîne

(strcmp(*iit, *min) < 0) 
+0

Quelle est la flexibilité que vous devez être en ce qui concerne les règles de classement de chaîne spécifique aux paramètres régionaux? Pas qu'ils font une différence pour les chaînes ASCII. –

Répondre

3

Vous pouvez répondre en vous posant les questions simples suivantes:

1) Comment puis-je avoir accès à un élément d'un std::vector à partir d'un itérateur?

2) Quel type d'opérations puis-je effectuer sur une chaîne?

Ces deux éléments sont facilement accessibles en consultant une documentation. Cela vous mènera à une solution, comme ce qui suit: Comparez les cibles des itérateurs en utilisant l'un des opérateurs de comparaison de std::string:

*iit < *min 
0

Si iit et min sont itérateurs à un std::vector<std::string> puis *iit et *min est un std::sting. Depuis std::string a un operator < vous pouvez les comapre comme

if (*iit < *min) 
    // do stuff